Laravel。与路线冲突

时间:2018-04-08 18:57:17

标签: php laravel

我的路线有问题。当我打电话给编辑政策'我不知道什么执行但不是方法editPolicy。我想我有两个问题:#/ p>

我的web.php ##

       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方法没有执行时,我不知道发生了什么。

请帮忙吗?

祝你好运

1 个答案:

答案 0 :(得分:0)

单击锚点将始终触发GET请求。 route('listPolicy', $user->id)route('editPolicy', $policy->id)都会返回admin/edit/{an_id},因此当您点击主播时,listPolicy将会被执行。如果您想致电editPolicy,则必须通过表单发送PUT请求,具体时您使用Route::put声明路线时定义。

快速注意,您的两条路线具有相同的网址,但似乎做了非常不同的事情,您应该区分它们以避免混乱。如果它们对同一资源和不同方法有影响,则可以使用具有相同URL的多个路由。例如,用于显示,删除或更新相同的资源。 看看documentation