Laravel 5.6 Внедрение зависимостей через идентификатор параметра - PullRequest
0 голосов
/ 03 октября 2018

У меня есть маршрут:

Route::group(['prefix' => 'admin', 'middleware' => 'auth', 'as' => 'admin.'], function () {

    Route::resource('photos', 'Admin\PhotoController', [
        'parameters' => [
            'photos' => 'alias'
        ]
]); 

});

команда php artisan route: список: enter image description here

С командой:

php artisan make: контроллер Admin / PhotoController --resource --model = Models / Photo

Я создал контроллер ресурса Admin / PhotoController, который имеет метод

    public function edit(Photo $photo)
    {
        dd($photo);
    }

В таблице базы данных photos У меня есть столбец alias: enter image description here

Почему, когда я захожу по URL-адресу admin / photos / alias1 / edit laravel 5.6 не загружает автоматически фото модели, в котором псевдоним = alias1, но загружает пустую модель:

enter image description here

Если в адресной строке вместопараметра псевдоним запись идентификатора admin / photos / 1 / edit + в маршрут, удаление имени параметра alias, после чего модель Photo загружается нормально:

enter image description here

Но для меня идентификатор параметра не подходит, мне нужно использовать псевдоним. Скажите, пожалуйста, в чем может быть проблема, и возможно лио так?

1 Ответ

0 голосов
/ 03 октября 2018

ID используется по умолчанию.Это называется неявной привязкой модели маршрута.Вам необходимо использовать явную привязку модели маршрута и зарегистрировать alias1 для использования в поставщике услуг.Проверьте это здесь: https://laravel.com/docs/5.6/routing#explicit-binding

Настройка логики разрешения - это нужный вам раздел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...