Php laravel 5.7如何将一个控制器的变量id传递给另一个控制器
我有两个控制器,我尝试将变量形式的方法id从一个控制器传递到另一个控制器,我得到了一个类似于>MethodNotAllowedHttpException的错误。我将在操作后添加我的url,如下>。解决此问题的最佳方法是什么?您很可能获得MethodNotAllowedException,因为您正在通过GET或其他方式打开一个定义为POST路由的路由 为了避免这种情况,您可以使用php artisan route:list并获得所有已定义路由的列表,然后查看如何访问它们:Php laravel 5.7如何将一个控制器的变量id传递给另一个控制器,php,laravel,Php,Laravel,我有两个控制器,我尝试将变量形式的方法id从一个控制器传递到另一个控制器,我得到了一个类似于>MethodNotAllowedHttpException的错误。我将在操作后添加我的url,如下>。解决此问题的最佳方法是什么?您很可能获得MethodNotAllowedException,因为您正在通过GET或其他方式打开一个定义为POST路由的路由 为了避免这种情况,您可以使用php artisan route:list并获得所有已定义路由的列表,然后查看如何访问它们: +--------+--
+--------+-----------+----------------------------------------------------+------------------------+------------------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+----------------------------------------------------+------------------------+------------------------------------------------------------------------+--------------+
| | GET|HEAD | /a/show/{id} | | App\Http\Controllers\AController@show | web |
| | GET|HEAD | /b/show/{id} | | App\Http\Controllers\BController@show | web |
假设你有两个控制器:A控制器和B控制器。每个控制器中都声明了一个show方法
类AController扩展控制器{
//…其他与AController相关的代码
公共函数show$id{
dd$id;
}
}
类BController扩展控制器{
//…其他B控制器相关代码
公共函数show$id{
dd$id;
}
}
然后您可以这样定义您的路线:
像example.com/a/show/10这样的链接将加载控制器的show方法。我们在AController::show方法主体中的所有内容都在$id上,如果访问该链接,我们将得到10个打印内容
我们可以替换dd$id;与:
并定义另一条路线:
Route::get('/b/show/{id}', 'BController@show');
这样,如果我们打开前面的链接:example.com/a/show/10,我们将被重定向到:example.com/b/show/10,并且将执行BController::show方法,并使用打印变量
要点:
请添加控制器的代码
redirect()->action('BController@show', ['id' => $id]);
Route::get('/b/show/{id}', 'BController@show');