我正在寻找资源:
Route::resource('/p/{p_id}/certificate', 'CertificateController');
但在CertificateController中它每次调用show() 当我搜索像
这样的网址时/p/#number/certificate/index
我有一个这样的课程
class CertificateController extends Controller
{
public function index(Request $request, $p_id)
{
...
}
public function show($p_id)
{
...
}
有什么问题?
答案 0 :(得分:0)
在Laravel中使用资源时的路线 / p / {id}将自动路由到show方法。这就是它的设计方式。
如果你想去索引,请先试试这条路线,
Route::get('/p/{id}/certificate', 'CertificateController@index');
答案 1 :(得分:0)
要重定向您的网址,您可以在资源路径之前编写特定方法来驱动您的网页,如:
web.php
Route::get('/p/{number}/certificate/index','CertificateController@index');
答案 2 :(得分:0)
您可以感谢文档删除了嵌套资源'部分。
这是您处理嵌套资源的方式:
Route::resource('p.certificate', 'YourController');
// index - p/{p}/certificate
// show - p/{p}/certificate/{certificate}
// edit - p/{p}/certificate/{certificate}/edit
// etc ...
如果您想更改参数名称,可以通过Route::resource
options
数组的第3个参数轻松完成。
Laravel Docs - 5.1 - Controllers - Restful - Nested Resources
Laravel Docs - 5.4 - Controllers - Restful - Naming Resource Route Parameters