Laravel中的文件未更新

时间:2017-09-04 15:52:08

标签: php laravel laravelcollective laravel-5.5

我有Laravel 5.5应用程序。我正在尝试更新我的帖子,图片没有更新。当我死了并转储以下

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'  =>  'AdminController@sliderupdate',
    'as'    =>  'admin.slider.update'
]);

我遗失的东西,却找不到它是什么。

2 个答案:

答案 0 :(得分:1)

您缺少'files' => true选项。如果您要接受文件,则传递给filesForm::open的数组中需要Form::model选项。

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

答案 1 :(得分:0)

方法:

function allcat(e) {
  var myVar = jQuery('#allcat').val();
  jQuery("#anchor").html("<a target='_blank' href='http://www.example.com/page.php?search=" + myVar + "&order=DESC'>All cat Link - " + myVar + "</a>");
  return false;
}

function catMain(e) {
  var myVar = jQuery('#catMain').val();
  jQuery("#anchorMain").html("<a target='_blank' href='http://www.example.com/page.php?category=main&search=" + myVar + "&order=DESC'>Main Cat Link - " + myVar + "</a>");
  return false;
}

jQuery(document).keyup(function(event) {
  if (event.keyCode == 13) {
    jQuery("#anchorMain").trigger('click');     
  }
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <h1>Generate Link</h1> <table border="0"> <tr> <td>All Others</td> <td> <input type="text" size="50" name="allcat" id="allcat" onkeyup="allcat()"> </td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>Category main</td> <td> <input type="text" size="50" name="catMain" id="catMain" onkeyup="catMain()"> </td> </tr> </table> <hr><br> <span id="anchor">All Category</span><br><br><br> <span id="anchorMain">Cat main</span>更改为

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