2017-04-25 95 views
0

我的路線已經資源:Laravel去總是顯示()

Route::resource('/p/{p_id}/certificate', 'CertificateController'); 

但CertificateController它調用每次演出() 還當我搜索URL像

/p/#number/certificate/index 

我像這樣的班級

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

問題是什麼?

+0

,還指着你對'秀()'? – hassan

+0

向我們展示'php artisan route:list'上的路線# –

回答

0

當您在Laravel中使用資源時,路線 /p/{id}將自動路由到show方法。這就是它的設計。

如果你喜歡去嘗試索引之前你的這條路線,

Route::get('/p/{id}/certificate', '[email protected]'); 
+1

'CertificateController'後忘了'@ method' –

+0

Thanks @EliasSoares! –

0

對於重定向您的網址,你可以資源路線之前編寫特定的方法來推動你喜歡頁:

web.php

Route::get('/p/{number}/certificate/index','[email protected]'); 
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陣列輕鬆辦到。

Laravel Docs - 5.1 - Controllers - Restful - Nested Resources

Laravel Docs - 5.4 - Controllers - Restful - Naming Resource Route Parameters

當你查找到`/ P /#號/ ce​​rtificate` URL