Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 11.07.2017 16:26:44

Ошибка Route [...] not defined

Версия 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.

Не в сети

#2 11.07.2017 17:23:12

Re: Ошибка 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)

Не в сети

#3 11.07.2017 18:55:28

Re: Ошибка Route [...] not defined

Нет, пространство имён это совсем другое, контроллеры и так работают (проверил) если писать пространство перед контроллером, но за пространство имён спасибо. Проблема в другом, при вызове функции хелпера route('admin.articles.index') появляется ошибка Route [admin.articles.index] not defined. В версии 5.2 такой ошибки нет. Ещё я заметил, что даже если просто прописать путь

<a href="/articles">Статьи</a>

, то в браузере ссылка будет уже site.com/admin/articles. Ларавел сам подставляет /admin видимо, может это как-то связано?

Не в сети

#4 11.07.2017 19:57:29

Re: Ошибка Route [...] not defined

Извиняюсь, не тот кусок из своего кода выдернул. Исправил свой пост выше.

Еще, лучше назвать контроллер ArticleController.

Изменено AlexeyMezenin (12.07.2017 06:29:40)

Не в сети

#5 11.07.2017 23:51:47

Re: Ошибка Route [...] not defined

Еще, лучше назвать контроллер ArticleController и путь/название маршрутов article вместо articles.

Знакомство с именованными роутами, да и с RESTful, я начал где-то в 2011г вместе с фреймворком Ruby on Rails.
Вот в руби - стандарт наименования во множественном числе.

rest-and-scaffolding-ruby-on-rails-5-638.jpg?cb=1404565814

P.S. Ничего не имею против единственного числа.

Не в сети

#6 12.07.2017 06:32:52

Re: Ошибка Route [...] not defined

Да, ты прав, какая-то рассеяность меня вчера затянула. Посмотрел код, написанный согласно договоренностям: маршруты во множественном числе, контроллер в единственном.

Не в сети

#7 12.07.2017 15:17:28

Re: Ошибка Route [...] not defined

Спасибо, это помогло. Правда странно, что в версии 5.2 у меня работало и без 'as' => 'admin.', но всё равно спасибо!

Не в сети

Подвал раздела