Laravel: поставщик услуг для методов

Я строю класс php, которому для некоторых методов нужен экземпляр Request.

Пример :

static public function warningAlert($message, Request $request) {
$request->session()->flash('alert-warning', "$message");
}

Я думал, что поставщик услуг предоставит этот экземпляр, но он этого не делает:

Argument 2 passed to ...\validatorAlerts() must be an instance of Illuminate\Http\Request, none given

Как я могу предоставить его?

PS: я не хочу использовать фасады.

1

Решение

Вы могли бы сделать что-то вроде:

app()->call('Classname::warningAlert', [ $message ]);

В качестве альтернативы вы можете изменить свой метод:

static public function warningAlert($message) {
$request = resolve("request");
$request->session()->flash('alert-warning', "$message");
}
1

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

Вы можете использовать вспомогательную функцию request()

static public function warningAlert($message) {
request()->session()->flash('alert-warning', "$message");
}

Или даже лучше, я рекомендую вам использовать laracasts/flash пакет

1

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