我正在对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)
答案 0 :(得分:5)
从/
方法中删除Route::resource
字符。它导致双点,这反过来导致您的错误消息。
应该是:
Route::resource('profile' , 'ProfileController', array('as'=>'profile') );
格式(/profile
或profile
)通常都有效,但在prefix
选项与Route::group
一起使用时,您需要从资源中删除/
URL。
编辑:在我看来,您应该将链接指向路线admin.profile.index
,而不是admin.profile
。
答案 1 :(得分:2)
你为什么不做URL::to('admin/profile');
因为你试图用URL::route('admin.profile');
实现的几乎相同的类型数量。
根据我的理解,URL::route('profile');
将为您指定的同名路线生成完整的URL字符串。
修改强>
echo URL::route('admin.profile.index');
应该有效。根据{{3}},您应该在ROUTE NAME
下包含.index。
答案 2 :(得分:1)
第一步:在您的IDE终端中执行php artisan route:list
。
第二步:在URI列中找到管理员/配置文件。
第三步:在与该uri相关的“名称”列中,您应该找到类似
profile.index
最后一步:您应使用href中第三步提供的名称。
注意:与laravel 5.6及更高版本中的laravel 5.3相反,使用admin.profile.index
无效