Создание CMS на Laravel: создание админки и настройка url админки
Доброго времени суток. Мы продолжаем создавать CMS на Laravel. Так в прошлой статье мы с вами установили Laravel, настроили виртуальный хост на OpenServer (для разработки), настроили виртуальный хост на Ubuntu (для тестирования). А в данной статье мы создадим админку для нашей CMS. Это первое, что нам необходим сделать. И второе – вынесем адрес админки в конфигурационный файл. Тогда мы сможем редактировать адрес админки в конфигурационном файле. Ну, что поехали.
Давайте определимся. Все контроллеры, относящиеся к админке, будут находится в папке app\Http\Controllers\Admin. Все вьюшки относящиеся к админке в папке resources\views\Admin.
Создание админки CMS
Первое давайте создадим контроллер для админки, который будет выводить панель управления. Для этого переходим в терминале переходим в корень нашего проекта и выполняем следующую команду:
php artisan make:controller Admin\DashboardController
Открываем наш контроллер на редактирование и добавляем следующий метод:
public function show() { return 'Админка - Панель управления'; }
Теперь давайте пропишем роут. Открываем файл: routes\web.php и добавляем в него следующий код:
Route::get('admin',['as' => 'admin.dashboard','uses' => 'Admin\DashboardController@show']);
Сохраняем и проверяем.
Отлично все работает. Но роутов, относящихся к админке у нас будет много, поэтому давайте создадим группу роутов и дадим ей имя.
Про то, что такое группа роутов вы можете прочитать в официальной документации. А про именованные роуты вы можете прочитать у меня в статье «Laravel: Именованные группы роутов»
Открываем файл routes\web.php и меняем:
Route::get('admin',['as' => 'admin.dashboard','uses' => 'Admin\DashboardController@show']);
на
Route::group( [ 'prefix' => 'admin', 'namespace' => 'Admin', 'as' => 'admin.', ], function(){ Route::get('/',['as' => 'dashboard','uses' => 'DashboardController@show']); } );
Проверяем. Все работает.
Теперь давайте добавим вьюшку. Для этого создадим в папке resources\views\ папку «Admin» тут, как я писал выше, будут располагаться вьюшки для нашей админки. Теперь в папке Admin создадим папку Dashboard и в ней файл show.blade.php
Добавим в этот файл следующий код
<?php echo 'Это вьюшка'; ?> <h1>Админка - Панель управления</h1>
И теперь изменим метод show нашего контролера
public function show() { return view('Admin.Dashboard.show'); }
Проверяем.
Отлично все работает. Теперь давайте сделаем возможность изменять URL админке через конфигурационный файл.
Настройка адреса админки.
Как вы знаете все основные настройки хранятся в файле .env, который расположен в корне нашего проекта. Давайте и настройку адреса админки поместим туда. Создадим в этом файле еще одну константу.
APP_ADMIN_URL=test
Где вместо test вы можете прописать любой адрес для админки.
Теперь внесем несколько изменений в файл с роутами.
Первое в самом начале файла добавим:
$adminURL = env('APP_ADMIN_URL', 'admin');
Второе, в группе роутов заменим «namespace» c «Admin» на $adminURL
Сохраняем и проверяем.
Перейдем в начале по /admin
Страница не найдена. И правильно мы же указали, что адрес админки теперь «test». Переходим /test
Все работает.
Заключение.
Мы с вами создали контроллер для админки, тем самым заложили основу разработки админки нашей CMS на Laravel. А также вынесли настройку адреса для админки в конфигурационный файл.
Дальше мы сделаем авторизацию для админки. Так, что не пропускайте выхода новых статей.
Чтобы не пропустить выхода новых статей подписываемя: VK, twitter, facebook. И канал на youtube
Спасибо за статью.
Жаль не нашел продолжения