|
|||||||
Как в Laravel создать контроллер в поддиректории, и как в роутинге писать к нему путь
Время создания: 29.03.2019 19:14
Автор: xintrea
Текстовые метки: laravel, роут, route, контроллер, controller, путь, директория, поддиректория, namespace, use, пространство имен
Раздел: Компьютер - Программирование - Язык PHP - Laravel
Запись: xintrea/mytetra_syncro/master/base/1553876067ef8rbrzb25/text.html на raw.github.com
|
|||||||
|
|||||||
Рано или поздно, у начинающего программиста, использующего Laravel, возникает задача разместить контроллер в подкаталоге, а не просто сваливать все контроллеры в стандартном каталоге: /app/Http/Controllers Итак, как создать контроллер в подкаталоге, и как его использовать? Если взять контроллер, который находится в стандартном каталоге, и просто переместить его в подкаталог, например, в такой: /app/Http/Controllers/personalArea То он окажется неработоспособным. Почему, и что нужно сделать, чтобы контроллер заработал? Нужно сделать две вещи. 1. Прописать namespace, соответствующее текущему каталогу. То есть, вместо стандартного: namespace App\Http\Controllers; надо прописать namespace App\Http\Controllers\personalArea; 2. Так как namespace поменялось, то в нашем новом пространстве имен, которое мы сами создали, нет класса Controller, от которого, скорее всего, наследуется наш контроллер. Поэтому необходимо еще добавить строку: use Illuminate\Routing\Controller; Теперь контроллер становится работоспособным. Как обратиться к нему в роутинге? Просто в роутинге надо писать имя класса контроллера с учетом подкаталога, разделяя обратным слешем "\", например вот так: Route::get('/move', 'personalArea\MoveController@index'); В результате, все действия, которые здесь написаны, достаточны для того, чтобы заставить работать контроллер в подкаталоге. ToDo: Еще надо проверить, как создается контроллер в подкаталоге через artisan. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|