Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Версия Laravel: 5.4
Версия PHP: 5.6
Операционная система и её версия: Windows 10 x64
Вендор и версия сервера БД: MySQL 5.5
Вендор и версия Веб-сервера: open server. Apache 2.4
Создал маршрут:
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {
Route::resource('articles','Admin\ArticlesController');
});
В шаблоне вызываю функцию {{ route('admin.articles.index') }} и выводится ошибка Route [admin.articles.index] not defined.
Проверил в консоли маршруты (route:list) и действительно имена маршрутов обычные 'articles.index' без префикса 'admin'. В 5.2 вроде работает, но в 5.4 выскакивает эта ошибка. Подскажите, пожалуйста, что нужно прописать в функции route() для корректного отображения данного маршрута. Или может ошибка в другом?
P.S. пробовал присвоить имя маршруту через ['as' => 'name', 'uses' => 'Controller'] выскакивает ошибка Array to string conversion. Если передать массив с именем в 3 аргументе, то всё равно ошибка Route [...] not defined.
Не в сети
Ты забыл добавить параметр as:
Route::group(['as' => 'admin.', 'prefix' => 'admin', 'middleware' => 'auth'], function() {
Route::resource('articles','Admin\ArticlesController');
});
https://laravel.ru/docs/v5/routing#именованные
Изменено AlexeyMezenin (11.07.2017 19:57:41)
Не в сети
Нет, пространство имён это совсем другое, контроллеры и так работают (проверил) если писать пространство перед контроллером, но за пространство имён спасибо. Проблема в другом, при вызове функции хелпера route('admin.articles.index') появляется ошибка Route [admin.articles.index] not defined. В версии 5.2 такой ошибки нет. Ещё я заметил, что даже если просто прописать путь
<a href="/articles">Статьи</a>
, то в браузере ссылка будет уже site.com/admin/articles. Ларавел сам подставляет /admin видимо, может это как-то связано?
Не в сети
Извиняюсь, не тот кусок из своего кода выдернул. Исправил свой пост выше.
Еще, лучше назвать контроллер ArticleController.
Изменено AlexeyMezenin (12.07.2017 06:29:40)
Не в сети
Еще, лучше назвать контроллер ArticleController и путь/название маршрутов article вместо articles.
Знакомство с именованными роутами, да и с RESTful, я начал где-то в 2011г вместе с фреймворком Ruby on Rails.
Вот в руби - стандарт наименования во множественном числе.
P.S. Ничего не имею против единственного числа.
Не в сети
Да, ты прав, какая-то рассеяность меня вчера затянула. Посмотрел код, написанный согласно договоренностям: маршруты во множественном числе, контроллер в единственном.
Не в сети
Спасибо, это помогло. Правда странно, что в версии 5.2 у меня работало и без 'as' => 'admin.', но всё равно спасибо!
Не в сети
Страницы 1