Можно ли «зацепить» Laravel RESTful маршрутизация?

Я понимаю, с Laravel вы можете использовать Route::resource методы маршрутизации для обработки таких вещей, как /user/1 (https://laravel.com/docs/5.0/controllers#restful-resource-controllers)

Мне было интересно, как создать лучший способ «цепочки» методов, чтобы я не повторял код.

Например, у меня есть /team/1/user/1Я мог бы направить это TeamUsers контроллер, который захватывает команду и пользователя из базы данных в методе «show».

Теперь, если бы я хотел создать /team/1/group/1 маршрут к TeamGroups контроллер, у меня был бы дублирующий код, чтобы снова взять команду из базы данных.

Что было бы лучшим способом выполнить обратную цепочку и написать код команды извлечения только в одной точке?

ура

0

Решение

Laravel на самом деле имеет понятие привязка модели маршрута который позаботится об этом для вас. Таким образом, ваш код будет выглядеть примерно так:

Route::get('team/{team}/user/{user}', function (App\Team $team, App\User $user) {
$team_name = $team->name;
$user_name = $user->name;
});

И то же самое для группы:

Route::get('team/{team}/group/{group}', function (App\Team $team, App\Group $group) {
$team_name = $team->name;
$group_name = $group->name;
});
1

Другие решения

Вы можете написать класс репозитория, где вы можете получить все данные, например
https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/

0

По вопросам рекламы [email protected]