在Laravel 5.4中更新模型挑战

时间:2017-06-14 08:57:22

标签: laravel-5.4

尝试使用Laravel 5.4进行更新,因为我继续学习,但我遇到了问题,我认为它与表单操作中的路径有关。错误是NotFoundHttpException,这是uri的内容

http://127.0.0.1:8000/task/5/( '/任务/ 5')_标记= 8GPlMCXCfD5714MgtNaxQ90K6p07QSG6nKVAHNz9&安培; EMPLOYEE_ID =克里斯+洛基&安培;标题=中等+任务+电平+更新&安培;描述=更新+挑战&安培;优先级=高&安培;开始= 2017 -06-06&安培;端= 2017年6月13日

以下是我正在使用的内容

在我的web.php文件中,我有

Route::put('/task/{id}', 'TaskController@update');

在我的TaskController文件中

public function update(Request $request, $id)
{
    /*$task = Task::find($id);

    $task->fill($request->all);*/

    dd($request);

    //return view('task.view', compact('task'));
}

这就是我的形式

<form class="form-horizontal" role="form" method="PUT" action="('/task/{{$task->id}}')">
{{ csrf_field() }}

显然我做错了什么,不幸的是我在3天后无法确定它。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

从laravel 5.4文档中,HTML表单无法发出PUT,PATCH或DELETE请求,您需要添加隐藏的_method字段来欺骗这些HTTP谓词。所以我在我的表单中包含了帮助器,将表单方法更改为POST并保持操作与路径相同

<form class="form-horizontal" role="form" method="PUT" action="('/task/{{$task->id}}')">
{{ csrf_field() }}
{{ method_field('PUT') }}

修正了它。

答案 1 :(得分:0)

最好这样做你的路线web.php。

Route::put('/task', [
        'uses' => 'TaskController@update',
        'as' => 'task.update'
    ]);

在您的表单中,您可以使用as来表示您的路线,这意味着别名。

实施例

<form action="{{ route('task.update', ['id' => $task->id]) }}" method="put">