路线没有定义 - Laravel

时间:2018-01-15 09:51:05

标签: laravel laravel-5

我创建了一个按钮,可以重置复选框内的所有值。这要归功于一种由于ID而执行更新的方法。

查看:

<div>
        {!! Form::open(['method' => 'PUT','route' => ['checklists.updateRichiesta', $richiesta->id]]) !!}
        <button type="submit" onclick="return ConfirmDelete();" class="#">
            <i class="fa fa-times"></i>
        </button>
        {!! Form::close() !!}
</div>

ChecklistController:

public function updateRichiesta(Request $request, $id)
{
    \App\Checklist::where('richiesta_id', $id)->update(['isCheck' => 'false']);
    \App\Richiesta::where('id', $id)->update(['stato' => 1]);
    return Redirect::back();
}

Route.php

Route::resource('checklists', 'ChecklistController');

错误:

Route [checklists.updateRichiesta] not defined.

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

使用resource路由时,更新路由的名称为update。因此,将路径名称更改为:

'route' => ['checklists.update', ...

将控制器方法重命名为update

public function update(Request $request, $id)

https://laravel.com/docs/5.5/controllers#resource-controllers

答案 1 :(得分:0)

像这样编辑表单开头标记:

{!! Form::open(['method' => 'PUT','route' => ['checklists.update', $richiesta->id]]) !!}

或将updateRichiesta方法添加到您的控制器

答案 2 :(得分:0)

由于它是资源,您必须使用资源语法来定义路由。

https://laravel.com/docs/5.5/controllers#resource-controllers

在这种情况下,您可以通过以下方式呼叫路线:

{!! Form::open(['method' => 'PUT','route' => ['checklists.update', $richiesta->id]]) !!}