簡體   English   中英

Laravel鏈接到未定義的路由

[英]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') );

格式( /profileprofile )通常都可以使用,但是當使用帶有Route::groupprefix選項時,您需要刪除/ 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。

解決方案適用於Laravel 5.6及更高版本

第一步:在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM