我的路线有问题。当我打电话给编辑政策'我不知道什么执行但不是方法editPolicy。我想我有两个问题:#/ p>
Route::get('admin/edit/{user_id}', 'PolicyController@listPolicy')->name('listPolicy');
Route::put('/admin/edit/{policy_id}','PolicyController@editPolicy')->name('editPolicy');
我在all.blade.php视图中调用listPolicy路由,如下所示:
<a href="{{ route('listPolicy', $user->id) }}">{{ $user->name }}</a>
并在edit.blade.php视图中调用editPolicy路径,如下所示:
<a href="{{ route('editPolicy', $policy->id) }}" title="Remove" class="text-danger">Remove</a></td>
我的PolicyController.php是:
public function listPolicy($user_id)
{
$policies = Policy::where('user_id', $user_id)->get();
return view('admin/edit',compact('policies'));
}
public function editPolicy($policy_id)
{
dd($policy_id);
}
但是当我调用editPolicy路由但editPolicy方法没有执行时,我不知道发生了什么。
请帮忙吗?
祝你好运
答案 0 :(得分:0)
单击锚点将始终触发GET请求。
route('listPolicy', $user->id)
和route('editPolicy', $policy->id)
都会返回admin/edit/{an_id}
,因此当您点击主播时,listPolicy
将会被执行。如果您想致电editPolicy
,则必须通过表单发送PUT请求,具体时您使用Route::put
声明路线时定义。
快速注意,您的两条路线具有相同的网址,但似乎做了非常不同的事情,您应该区分它们以避免混乱。如果它们对同一资源和不同方法有影响,则可以使用具有相同URL的多个路由。例如,用于显示,删除或更新相同的资源。 看看documentation。