2016-01-23 97 views
1

在Laravel5我無法更新編輯圖像,當我上傳新文件,這個結果爲空... 下面我的代碼在控制器,路線和編輯視圖。上傳圖片在更新Laravel

這裏我的控制器:

public function update(Request $request, $id) 
{ 
    $slider = Slider::findOrFail($id); 
    //$input = $request->all(); 

    // uploads image 
    if ($request->hasFile('image')) 
    { 
     $file = $request->file('image'); 
     $imagename = 'dpgomma_' . time() . '-' . $file->getClientOriginalName(); 
     $file->move(public_path().'/uploads/', $imagename); 
     $input['image'] = $imagename; 
    } 
    $slider->save($request->all()); 
    return redirect('/admin/sliders')->with('message', 'Slider Modificata'); 
} 

我的路線:

Route::get('/admin/sliders/edit/{id}', '[email protected]'); 
Route::put('/admin/sliders/update/{id}',['as' => 'sliders.update', 'uses' => '[email protected]']); 

我的看法形式:

{!! Form::model($slider, [ 
'method' => 'put', 
'route' => ['sliders.update', $slider->id], 
'files' => true 
]) !!} 

{!! Form::token() !!} 

<div class="form-group"> 
    {!! Form::label('title', 'Title:', ['class' => 'control-label']) !!} 
    {!! Form::text('title', null, ['class' => 'form-control']) !!} 
</div> 

<div class="form-group"> 
    {!! Form::label('image', 'image:', ['class' => 'control-label']) !!} 
    {!! Form::file('image', null, ['class' => 'form-control']) !!} 
</div> 

{!! Form::submit('Update Task', ['class' => 'btn btn-primary']) !!} 

{!! Form::close() !!} 

回答

1

您必須添加'files' => true選項在表單中打開。

此外,您可以使用$request->hasFile('image')$request->file('image')而不是Input正面。

我建議你看看this,沒有更多的理由不工作。

+0

我已經完成,但仍然無法正常工作。無論如何感謝 –

+0

你能更新你的代碼嗎? – PeterPan666

+0

您使用什麼包裝形式? – PeterPan666

1

您的數據庫沒有更新映像名稱,因爲映像名稱包含在input['image']中,並且您使用$request服務容器更新了數據庫。所以,去你的形象的原始名稱到$請求服務容器像

$request = [ 
    'other' => 'other', 
    'image' => 'you_original_image_name', 
    'more_other' => 'more_other' 
] 

要更新慾望文件名更改數據庫這一行

$input['image'] = $imagename; 

$request['image'] = $imagename;