Неявная привязка Eloquent Route Laravel 5.6 не работает

Я попытался разработать приложение и хотел бы использовать привязку маршрута, но что-то не так, и я не знаю, что это такое. Plz, посмотрите код ниже и помогите мне, что это не так.

Маршрут

|        | PATCH    | api/v1/filial/{filial}                  |      | Genesis\Base\Filial\Controllers\FilialController@update                    | auth:api   |

Модель

class Filial extends Model{

/**
 * @var string
 */
protected $table = "filiais"; ...

Контроллер

class FilialController extends BaseFormController{...
    public function update(FilialRequest $request, Filial $filial){
       dd($filial);
    }...

И тогда на выходе получается пустая модель. Я не знаю, что это не так, параметры, Модель, Uri все эти вещи совпадают. Я использую Laravel 5.6 с самого начала этого проекта.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
2 524
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Убедитесь, что у вас все настроено правильно, в вашем kernel.php должны быть:

protected $routeMiddleware = [
    ...
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ...
];

Вам также необходимо убедиться, что у вас есть связующее ПО промежуточного слоя в ваших маршрутах:

Route::group(['middleware' => ['bindings'], function() {
    // routes
}

Если это все еще не работает, я бы предпочел изучить явная привязка маршрута:

To register an explicit binding, use the router's model method to specify the class for a given parameter. You should define your explicit model bindings in the boot method of the RouteServiceProvider class:

public function boot()
{
    parent::boot();

    Route::model('filial', App\Filial::class);
}

Привет, Алекс, с твоим советом я обнаружил проблему: в kernel.php промежуточное ПО «привязок» было к «api», но я использовал «auth: api», поэтому я добавил «api» к моим маршрутам. , однако IDK, будь то лучший способ сделать это, или добавить в kernel.php что-то вроде 'auth:api' => [ 'bindings', ], в $ middlewareGroups. Как вы думаете?

Juliano Rafael 07.05.2018 05:25

Я думаю, что любой вариант подойдет, лично у меня просто большая часть моих маршрутов в группе, как в моем примере кода выше, но размещение его в $middlewareGroups кажется одинаково хорошим вариантом!

Alex Harris 07.05.2018 20:37

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