内部相同的路由名称不起作用

时间:2019-02-14 07:57:02

标签: jquery laravel-5.7

这是我的路线代码。对于每个单独的前缀,我具有通用的路由名称状态,但是仅使用我在路由的最后定义的名称:

Route::group(['prefix' =>'notice', 'namespace'=>'Admin'], function(){ 
     Route::post('/status','NoticeController@status')->name('status')->middleware('auth');
});
Route::group(['prefix' =>'facility', 'namespace'=>'Admin'], function(){
     Route::post('/status','FacilityController@status')->name('status')->middleware('auth');
});
Route::group(['prefix' =>'award', 'namespace'=>'Admin'], function(){
     Route::post('/status','AwardController@status')->name('status')->middleware('auth');         
}); 

这是一个常见的js文件:

 $(document).ready(function() {
  $('.status').click(function(e) {
    var id = $(this).val();
    $.ajax({
      url: "{{route('status')}}",
      method: 'post',
      data: { id: id, _token: '{{csrf_token()}}' },
      success: function(data) {
        console.log(id);
      },
      error: function(response) {
        console.log(response);
      }
    });
  });
});

1 个答案:

答案 0 :(得分:0)

Laravel中的路由名称是唯一的

路由名称前缀

可以使用name方法在组中的每个路由名称前添加给定字符串。例如,您可能要在所有分组路由的名称前加上admin。给定的字符串将完全按照指定的前缀添加到路由名称中,因此我们将确保在前缀中提供结尾的.字符 https://laravel.com/docs/5.7/routing#route-group-prefixes

Route::name('notice')->group(['prefix' =>'notice', 'namespace'=>'Admin'], function(){ 
     Route::post('/status','NoticeController@status')->name('status')->middleware('auth');
});
Route::name('facility')->group(['prefix' =>'facility', 'namespace'=>'Admin'], function(){
     Route::post('/status','FacilityController@status')->name('status')->middleware('auth');
});
Route::name('award')->group(['prefix' =>'award', 'namespace'=>'Admin'], function(){
     Route::post('/status','AwardController@status')->name('status')->middleware('auth');         
}); 

在您的JS部分中使用 {{ route('award.status') }}