[英]Laravel link to route not defined
我正在對profile
控制器進行分組,我想鏈接到它。 然后我定義了這條路線:
//Group to put all the routes that need login first
Route::group(array('prefix'=> 'admin', 'before' => 'csrf'), function(){
Route::resource('/profile' , 'ProfileController', array('as'=>'profile') );
});
這是我的菜單鏈接:
<li><a href="{{ URL::route('admin.profile') }}">profile Managment</a></li>
這是我在終端route
結果:
+--------+----------------------------------+------------------------+---------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+----------------------------------+------------------------+---------------------------+----------------+---------------+
| | GET / | index | Closure | | |
| | GET admin/index | dashboard | Closure | | |
| | GET logout | logout | Closure | | |
| | POST auth | auth | Closure | csrf | |
| | GET login | login | Closure | | |
| | GET admin/profile | admin..profile.index | ProfileController@index | csrf | |
| | GET admin/profile/create | admin..profile.create | ProfileController@create | csrf | |
| | POST admin/profile | admin..profile.store | ProfileController@store | csrf | |
| | GET admin/profile/{profile} | admin..profile.show | ProfileController@show | csrf | |
| | GET admin/profile/{profile}/edit | admin..profile.edit | ProfileController@edit | csrf | |
| | PUT admin/profile/{profile} | admin..profile.update | ProfileController@update | csrf | |
| | PATCH admin/profile/{profile} | | ProfileController@update | csrf | |
| | DELETE admin/profile/{profile} | admin..profile.destroy | ProfileController@destroy | csrf | |
+--------+----------------------------------+------------------------+---------------------------+----------------+---------------+
現在我收到這個錯誤:
ErrorException
Route [admin.profile] not defined. (View: /var/www/alachiq/app/views/back_end/menu.blade.php) (View: /var/www/alachiq/app/views/back_end/menu.blade.php) (View: /var/www/alachiq/app/views/back_end/menu.blade.php)
從Route::resource
方法中刪除/
字符。 它導致雙點,這反過來導致您的錯誤消息。
應該:
Route::resource('profile' , 'ProfileController', array('as'=>'profile') );
格式( /profile
或profile
)通常都可以使用,但是當使用帶有Route::group
的prefix
選項時,您需要刪除/
from資源URL。
編輯:在我看來,你應該指向您的鏈接路由admin.profile.index
,而不是admin.profile
。
你為什么不直接做URL::to('admin/profile');
因為你想用URL::route('admin.profile');
來實現URL::route('admin.profile');
幾乎相同數量的類型。
根據我的理解, URL::route('profile');
將生成一個完整的URL字符串到一個與您分配的名稱相同的路由。
編輯
echo URL::route('admin.profile.index');
應該管用。 根據文檔 ,您應該在ROUTE NAME
下包含.index。
第一步:在IDE的終端中執行php artisan route:list
。
第二步:在URI列中找到admin / profile。
第三步:在與該uri相關的Name列中,您應該找到一些類似profile.index
最后一步:您應該使用href第三步中提供的名稱。
注意:與使用admin.profile.index
laravel 5.6及以上版本中的laravel 5.3相反
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.