@kategg

Как я могу ввести в класс значение из роута при привязки?

В кратце, есть такая задача: имеется определенный класс, конструктор которого принимает параметр id. Этот параметр необходимо взять из маршрута и при биндинге в AppServiceProvider ввести в класс
// класс, конструктор которого принимает параметр id
class Test
{
    private $id;
    
    public function __construct($id)
    {
        $this->id = $id;
    }
}
// пример маршрута: https://test.com/user/{id}

class AppServiceProvider
{
    //....
    public function register()
    {
        $this->app->bind(Test::class, function () {
            $id =  // получение параметра id
            return new Test($id);
        });
    }
}


Возможно ли такое сделать?
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
Как нибудь через route binding?

RouteServiceProvider.php

Route::bind('test', function (string $value) {
        return new Test($value);
});

web.php
Route::get('/{test}', [TestController::class, 'index']);

TestController.php
class TestController extends Controller
{

public function index(Request $request, Test $test){
    dd($test);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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