Маршрутизация в модулях строится аналогично маршрутизации в обычном приложении Laravel. Основой будут все те же самые контроллеры и маршруты. Создадим файл с маршрутами в папке routes: routes\web.php
. Содержимое то же самое, что и в приложении, например:
use Illuminate\Support\Facades\Route;
use MXJ\Addons\Blog\Http\Controllers\BlogController;
Route::get('/blog', [BlogController::class, 'index']) ->middleware(['web']);
Важно! Часть работы Laravel делает под капотом, и как правило вы этого не замечаете. Например, стандартный middleware web
, который отвечает за обработку CSRF токенов в приложении прописывается автоматически, а вот в модуле вам придется делать это самостоятельно. Не забывайте тестировать ваши маршруты на авторизацию и безопасность.
Теперь наши маршруты необходимо зарегистрировать в приложении, для это в функции register
сервис провайдера добавляем
public function register()
{
…
$this->loadRoutesFrom(__DIR__.'/../routes/web.php');
…
}
Работа с контроллерами та же самая что и в приложении. Правда стандартная команда php artisan make:controller PhotoController –resource
не сработает, поэтому в папке src\Http\Controllers
руками создадим файл BlogController.php
. Пример пустого контроллера для модуля:
namespace MXJ\Addons\Blog\Http\Controllers;
use Illuminate\Routing\Controller;
class BlogController extends Controller
{
use AuthorizesRequests;
public function index()
{
return redirect('/');
}
}