2017-09-04 65 views
-1

我有Laravel 5.5應用程序。我正在嘗試更新我的帖子,圖片未更新。當我死了和轉儲以下未在Laravel中更新的文件

dd($request->hasFile('image')); 

它輸出false

查看:

<div class="box-body"> 
    {{ Form::model($slider, array('route' => array('admin.slider.update', $slider->title), 'method' => 'PUT')) }} 
     <div class="form-group"> 
      {!! Form::label('title', 'Title') !!} 
      {!! Form::text('title', null, ['class' => 'form-control', 'placeholder' => 'Title']) !!} 
     </div> 
     <div class="form-group"> 
      {!! Form::label('content', 'Content') !!} 
      {!! Form::textarea('content', null, ['class' => 'form-control', 'placeholder' => 'Content']) !!} 
     </div> 
     <div class="row"> 
      <div class="col-md-2 col-xs-6"> 
       <div class="form-group"> 
        {!! Form::label('image', 'Change Image') !!} 
        {!! Form::file('image') !!} 
       </div> 
      </div> 
      <div class="col-md-10 col-xs-6"> 
       <img src="{{ secure_asset('images/slider/thumb/' . $slider->image)}}" class="img-responsive" width="150"> 
       {{ $slider->image }} 
      </div> 
     </div> 
     {!! Form::submit('Submit', array('class'=>'btn btn-info')) !!} 
    {!! Form::close() !!} 
</div> 

控制器:

public function sliderupdate($slider, Request $request){ 
    $slider = Slider::where('title', $slider)->firstorfail(); 
    $slider->title = $request->title; 
    $slider->content = $request->content; 
    dd($request->hasFile('image')); 
    if ($request->hasFile('image')) { 
     $file = Input::file('image'); 
     //getting timestamp 
     $timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString()); 
     $name = $timestamp. '-' .$file->getClientOriginalName(); 
     $file->move(public_path().'/images/slider/', $name); 
     $slider->image = $name; 
     $thumb = Image::make(public_path().'/images/slider/' . $name)->resize(1920,1080)->save(public_path().'/images/slider/thumb/' . $name, 90); 
    } 

    $slider->save(); 
    return redirect()->route('admin.slider.edit', $slider->title)->with('status', 'Update Success'); 
} 

路線:

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

我失蹤的東西,但無法找出它是什麼。

+0

顯示你的路線 –

+0

路線::把( '管理/滑塊/ {}滑塊',[ \t '使用' \t => \t 'AdminController @ sliderupdate', \t '爲' \t => \t 'admin.slider.update' \t]); –

+0

我添加和路由頂部請檢查 –

回答

1

你缺少'files' => true選項。如果您要接受文件,則需要files選項傳遞給Form::openForm::model

{{ Form::model($slider, [ 
    'route' => ['admin.slider.update', $slider->title], 
    'method' => 'PUT', 
    'files' => true 
]) }} 
0

方法:

public function slideredit($slider){ 
    $slider = Slider::where('title', $slider)->firstOrFail(); 
    return view('admin.slider.edit', compact('slider')); 
} 

更改Form

{!! Form::model($slider, ['route' => ['admin.slider.post', $slider->title, 'method' => 'PUT', 'files'=>true]]) !!} 
    <div class="modal-body"> 
    <!-- text input --> 
    <div class="form-group"> 
     {!! Form::label('title', 'Title') !!} 
     {!! Form::text('title', null, ['class' => 'form-control', 'placeholder' => 'Title']) !!} 
    </div> 
    <div class="form-group"> 
     {!! Form::label('content', 'Content') !!} 
     {!! Form::textarea('content', null, ['class' => 'form-control', 'placeholder' => 'Content']) !!} 
    </div> 
    <div class="form-group"> 
     {!! Form::label('image', 'Choose Image') !!} 
     {!! Form::file('image') !!} 
    </div> 
    </div> 

    <div class="modal-footer"> 
    <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Close</button> 
    {!! Form::submit('Submit', array('class'=>'btn btn-info')) !!} 
    </div> 
{!! Form::close() !!}