2014-02-07 6 views
3

Я группирую profile контроллер, и я хочу ссылку на него. Тогда я определяю этот маршрут:Laravel ссылка на маршрут не определен

//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 | [email protected] | csrf   |    | 
|  | GET admin/profile/create   | admin..profile.create | [email protected] | csrf   |    | 
|  | POST admin/profile    | admin..profile.store | [email protected] | csrf   |    | 
|  | GET admin/profile/{profile}  | admin..profile.show | [email protected] | csrf   |    | 
|  | GET admin/profile/{profile}/edit | admin..profile.edit | [email protected] | csrf   |    | 
|  | PUT admin/profile/{profile}  | admin..profile.update | [email protected] | csrf   |    | 
|  | PATCH admin/profile/{profile} |      | [email protected] | csrf   |    | 
|  | DELETE admin/profile/{profile} | admin..profile.destroy | [email protected] | 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) 
+1

На вашем маршруте имя админ-профиля зарегистрировано как «admin..profile» с двойной точкой. Я думаю, это связано с "/ profile" try with "profile" – luxcem

ответ

4

Удалить e / знак из Route::resource способ. Это вызывает двойные точки, которые, в свою очередь, вызывают сообщение об ошибке.

Должно быть:

Route::resource('profile' , 'ProfileController', array('as'=>'profile'));

Либо формат (/profile или profile), как правило, работают, но при использовании опции prefix с Route::group вам нужно удалить / из URL ресурса.

EDIT: Кроме того, мне кажется, что вы должны указывать вашу ссылку на маршрут admin.profile.index, не admin.profile.

+0

Я получаю эту ошибку сейчас: 'Illuminate \ Session \ TokenMismatchException' –

+1

Это вы жетоны CSRF ... не соответствующие ... вы работаете по маршруту ваш вопрос. –

2

Почему вы не просто делать URL::to('admin/profile');

Так что вы пытаетесь достичь с URL::route('admin.profile'); почти такое же количество типов прочь.

Теперь, исходя из того, что я понимаю, URL::route('profile'); создаст полную строку URL-адреса для маршрута с тем же именем, которому вы назначили.

EDIT

echo URL::route('admin.profile.index'); 

Должно работать. Исходя из Docs, вы должны указать .index под ROUTE NAME.

Смежные вопросы