Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔总是在表演中_Php_Laravel - Fatal编程技术网

Php 拉威尔总是在表演中

Php 拉威尔总是在表演中,php,laravel,Php,Laravel,我有一个资源: Route::resource('/p/{p_id}/certificate', 'CertificateController'); 但在CertificateController中,它调用everytime show() 当我搜索url的时候,比如 /p/#number/certificate/index 我上过这样的课 class CertificateController extends Controller { public function index(Re

我有一个资源:

Route::resource('/p/{p_id}/certificate', 'CertificateController');
但在CertificateController中,它调用everytime show() 当我搜索url的时候,比如

/p/#number/certificate/index
我上过这样的课

class CertificateController extends Controller
{
    public function index(Request $request, $p_id)
    {
    ...
    }
    public function show($p_id)
    {
    ...
    }

有什么问题吗?

当您在Laravel路线中使用资源时 /p/{id}将自动路由到show方法。它就是这样设计的

如果你想去索引,先试试这条路线

Route::get('/p/{id}/certificate', 'CertificateController@index');

对于重定向url,您可以在资源路由之前编写特定的方法来驱动页面,如:

web.php

Route::get('/p/{number}/certificate/index','CertificateController@index');

您可以感谢文档删除了“嵌套资源”部分

这是处理嵌套资源的方式:

Route::resource('p.certificate', 'YourController');
// index -  p/{p}/certificate
// show  -  p/{p}/certificate/{certificate}
// edit  -  p/{p}/certificate/{certificate}/edit
// etc ...
如果要更改参数名称,可以通过
Route::resource
的第三个参数轻松完成,该参数是
选项
数组


当您定位到
/p/#number/certificate
url,同时指向
show()
?在
php artisan route:list上向我们显示您的路线
您忘记了
CertificateController
之后的
@方法
,谢谢@EliasSoares!