Laravel中的路由问题,带有多个控制器和具有相同名称的不同路由[关闭]

Posted

技术标签:

【中文标题】Laravel中的路由问题,带有多个控制器和具有相同名称的不同路由[关闭]【英文标题】:Route issue in Laravel with several controllers and different route with same name [closed] 【发布时间】:2022-01-14 08:00:38 【问题描述】:

我在 web.php 中添加了以下路由,但它不起作用。

Route::post('show', [
'as' => 'usersinformation.show',
'uses' => 'usersinformationController@show'


 ]);



 Route::post('store', [
    'as' => 'usersinformation.store',
    'uses' => 'usersinformationController@store'
  ]);



 Route::get('store',[usersController::class, 'store'])->name('usersinformation.store');
    Route::post('/store', 'usersController@store');
    Route::post('store',[usersController::class, 'store'])->name('users.store');
    Route::get('/index', 'usersController@index');

我的控制器如下,我正在使用 Ajax 发送数据,但收到的错误是 Method not allowed exception。

public function store(Request $request)

    //
    $fname = $request -> fname;
    $lname = $request -> lname;
    $pnumber = $request -> pnumber; 

    

Ajax 代码----------------

data = 
    _token: $('input#usersinformation-token').val(),
    'fname': $('input#first_name').val(), 
    'lname': $('input#last_name').val(),
    'pnumber': $('input#phonenumber').val()

;
$.post(url, data, function(data, status)
    alert('working' + data + "    " + status );
    $('div#load-content').html(data);
 );

【问题讨论】:

您将发布请求发送到哪个 URL? 你已经多次定义了商店的帖子试试这个Route::post('/store',[usersController::class, 'store'])->name('store');并注释掉rest ajax post 请求的 url 是:127.0.0.1:8000/usersinformation/store 并且已经提到的路由是:route('usersinformation.store') @syedjawwadalam 您提到的路线不起作用。看来这不是我向其发送请求的控制器。 @syedjawwadalam 我已经为此添加了正确的答案,如果您在 Laravel 中遇到路线问题,您可以随时使用它。 【参考方案1】:

我已经通过向我的路由内容添加命名空间解决了这个问题,如下所示:

route::post('usersinformation/store', 'usersinformationController@store');
route::post('usresinformation/destroy', 'usersinformationController@destroy');

您可以通过添加我添加的上述路线来轻松管理您的路线,并且永远不会遇到路线问题。

【讨论】:

以上是关于Laravel中的路由问题,带有多个控制器和具有相同名称的不同路由[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

多个控制器的单个 Laravel 路由

Laravel 5.2 中一个路由中的多个路由参数模式

为每个 URL 路由单独的 Laravel 控制器?

具有多个名称的 Laravel 路由

Laravel - 使用 Javascript 调用带有所需参数的路由

如何在 laravel 的单个控制器中传递多个路由