Динамически карта маршрутов в Ларавеле

Существуют ли какие-либо решения для динамического вызова маршрутов Laravel, вызова контроллера и действия? Я не мог найти ничего в документации.

<?php

Route::get('/{controller}/{action}',
    function ($controller, $action) {
    })
    ->where('controller', '.*')
    ->where('action', '.*');

1 ответ

Решение

Laravel не имеет встроенной реализации, которая автоматически сопоставляет маршруты с контроллером / действиями. Но если вы действительно этого хотите, сделать простую реализацию не так сложно.

Например:

Route::get('/{controller}/{action}', function ($controller,$action) {
    return resolve("\\App\\Http\Controllers\\{$controller}Controller")->$action();
})->where('controller', '.*')->where('action', '.*');

Имейте в виду, что этот пример не будет автоматически вставлять объекты в ваши действия, а параметры URL также не вводятся. Вам придется написать немного больше кода, чтобы сделать это.

Другие вопросы по тегам