Я создаю сеанс для какой-то цели, но когда пользователь выходит из системы, значение цели становится нулевым, но я хочу использовать его после выхода пользователя из системы. Сценарий заключается в том, что сеанс создается администратором, и я хочу использовать этот сеанс для обычного пользователя, но когда администратор выходит из системы сессия также становится нулевой.
это код выхода из Laravel
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
return redirect('/');
}
Вот что вы можете сделать:
сначала получите все данные, которые хотите сохранить.
затем удалите все данные сеанса.
затем сохраните данные в сеансе.
затем выйдите из системы.
public function logout(Request $request)
{
// get the data first for example the user's name
$name = Auth::user()->name;
$this->guard()->logout();
$request->session()->invalidate();
// save the data into a new session
session(['name' => $name]);
return redirect('/');
}
то, на ваш взгляд, вы получите такие данные:
@if (session('name'))
{{ session('name') }}
@endif
$ запрос-> сеанс () -> недействительный (); эта строка кода обнуляет все сеансы любого типа пользователя и контроллера или только связанные с администратором.?
Он удалит все данные сеанса, относящиеся к текущему аутентифицированному пользователю. Вот почему мы устанавливаем данные в переменную, прежде чем сделать сеанс недействительным.
но я пытался сохранить данные сеанса в переменную, но этого не произошло, теперь я использую второй подход: я сохраняю логическое значение в базе данных, и когда оно становится истинным, оно выполняет какое-то действие. это подход записи или я должен пойти с сеансом ..?
это зависит от того, нужно ли вам просто логическое значение true или false, тогда сделайте это.
ОК. но для общих знаний какой из них более гибкий, или вы можете сказать более быстрый или хороший алгоритм ..?
Всегда лучше использовать базу данных. и, конечно, логический подход более эффективен, поскольку вам не нужно хранить больше данных.
Могу ли я сохранить данные сеанса в сеансе? bcz мои данные сеанса находятся в другом месте или на другом контроллере