#laravel
Вопрос:
Я хочу поделиться переменной $request между другой функцией с другого URL-адреса в том же контроллере на laravel, как показано ниже, но как ?
Контроллер
class ABCController extends Controller
{
public function validation(Request $request)
{
---------------
}
public function save()
{
Log::debug($request)
}
api.php
Route::post('/abc',[ABCController::class,'validation']);
Route::get('/save',[ABCController::class,'save']);
Что я пытался
class ABCController extends Controller
{
public function validation(Request $request)
{
Session::put('data', $request)
session(['data' => $request]);
Log::debug(Session::get('data'));
Log::debug(session('data'));
}
public function save()
{
Log::debug(Session::get('data'));
Log::debug(session('data'));
}
Я пробовал выше, но Log::debug в функции сохранения показывает мне значение null в журнале.
Пожалуйста, дайте мне совет.
Комментарии:
1. То, что вы пытаетесь сделать, кажется неправильным, я бы не стал полагаться на сериализацию запроса между вызовами. То же самое, если вы вызываете эти URL-адреса в postman, сеанса нет. Что вы на самом деле пытаетесь сделать?
2. Я хочу проверить электронную почту без laravels, поэтому уточняйте запрос и отправляйте почту , в которой есть код в первой функции, в следующей функции проверяйте код и сохраняйте данные, но я не хочу проверять запрос дважды.. Поэтому я хочу сохранить запрос на$.
3. Imo вам не следует пытаться хранить данные запроса между двумя запросами, если они вам нужны, добавьте их по ссылке, по которой они нажимают
Ответ №1:
Создайте глобальную переменную
class ABCController extends Controller
{
private $data;
public function validation(Request $request)
{
$this->data =$request;
}
public function save()
{
echo $this->data;
}
}