Как можно получить ожидаемые значения с resolveRouteBinding?

Хочу получить массив аргументов которые ожидаются в методе, для это :

class Example
{
    /**
     * @param \App\User $user
     *
     * @return \App\User
     */
    public function run(\App\User $user)
    {
        return $user;
    }
}


Route::get('/{user}', function () {

    $example = new Example();
    $class = new ReflectionClass($example);
    
    $current = Route::current();

    $arguments = $current->resolveMethodDependencies(
        $current->parameters(),
        $class->getMethod('run'),
    );

    dd($arguments);
});


Отрываю адрес `example.com/1` и ожидаю, что массив `$arguments` будет содержать модель пользователя с переданным порядковым номером, но нет. Массив состоит из пустой модели и переданного значения:

array:2 [▼
  0 => App\User {#359 ▶}
  "user" => "1"
]


Как можно добиться нужного поведения с выполнением биндига (\Illuminate\Contracts\Routing\UrlRoutable::class) для такого примера?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы