Laravel 5.1:如何为更新记录设置路由 - php

我正在使用Laravel 5.1

我正在使用laravel路线。

我使用Form/Html进行插入/更新,但卡在更新记录的路由中。

这是在routes.php中重定向到编辑页面的路由

Route::get('/company/edit/{id}','CompanyMasterController@edit');

在我的CompanyMasterController.php中

public function edit($id)
   {
      $company = CompanyMasters::find($id);

      return view('companymaster.edit',  compact('company'));
   }

我在edit.blade.php中的操作

{!! Form::model($company,['method' => 'PATCH','action'=>['CompanyMasterController@update','id'=>$company->id]]) !!}

并在routes.php中执行此操作的路线

Route::put('/company/update/{id}','CompanyMasterController@update');

我的控制器动作用于更新。

public function update($id)
   {
        $bookUpdate=Request::all();
        $book=  CompanyMasters::find($id);
        $book->update($bookUpdate);
        return redirect('/company/index');
   }

现在,当我单击提交按钮时,它会给我:

RouteCollection.php中的MethodNotAllowedHttpException

我究竟做错了什么?

参考方案

出现此错误的主要原因是因为您将表单设置为使用PATCH方法提交,并且已将路径设置为查找PUT方法。

您拥有的两个初始选项在您的路由文件中与表单具有相同的方法,或者您也可以将路由设置为:

Route::match(['put', 'patch'], '/company/update/{id}','CompanyMasterController@update');

上面将允许两种方法都用于该路由。

或者,您可以使用route:resource() https://laravel.com/docs/5.2/controllers#restful-resource-controllers。

这将照顾所有基本的Restful路线。

然后再进一步,您可以将以下内容添加到路由文件中:

Route::model('company', 'App\CompanyMasters'); //make sure the namespace is correct if you're not using the standard `App\ModelName`

然后,您的资源路线将类似于:

Route::resource('company', 'CompanyMasterController');

然后在CompanyMasterController中可以提示您的方法,例如

public function edit($id) {...}

会成为:

public function edit(CompanyMaster $company)
{
    return view('companymaster.edit',  compact('company'));
}

显然,即使您不想这样做,也不必采用这种方法。

希望这可以帮助!

PHP Laravel从另一个驱动器读取文件 - php

我目前正在学习Laravel。我想知道是否有一种方法可以在Laravel中使用Storage::从另一个硬盘访问文件(使用Windows)。例如,我在驱动器C:上安装了带有Laravel的Xampp,但是我想访问网站目录之外的E:上的文件。我试过使用Storage::files('E:')和File::files('E:…

Laravel 5排序具有关系的雄辩模型 - php

我有一个要基于关系属性进行排序的模型。主模型Resultado具有类型respondente的关系belongsTo,而respondente具有关系usuario。我想获取具有这些关系的Resultado并按usuario name属性(列)对结果进行排序。我试过了$resultados = Diagnostico\Resultado::with(…

检查对象是否已在集合中-Laravel - php

当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…

Laravel @yield在刀片视图引擎的html标签中 - php

这可能吗?<html @yield( 'AngularNamespace' )> </html> 显然以上方法不起作用... 参考方案 这个对我有用。只要您的其他模板文件具有@section('AngularNamespace', 'NameSpaceHere')

Laravel-使用雄辩的语言在开始日期和结束日期之间选择行 - php

我想将此查询转换为雄辩的laravel,select * from schedule where (now() between start_date and end_date); 我尝试使用whereBetween,但是出现了一些错误。$schedule = Schedule::whereBetween(Carbon::now(), ['start…