Значение сеанса Laravel удалить из сеанса - PullRequest
0 голосов
/ 15 января 2019

Я создаю сеанс в модели, используя поставщика услуг, но когда я пытаюсь получить значение сеанса на другой странице, он ничего не показывает.

Поставщик услуг (Projectfunction.php)

public function test1(){
    $student_model = new \App\Config();
    return $student_model->createSession();
}
public function test2(){
    $student_model = new \App\Config();
    print_r($student_model->viewSession_v1());
}

Модель (Config.php)

public function createSession(){
    session()->put('email', 'abcd123');
}
public function viewSession_v1(){
    $data = session()->get('email');
    return $data;
}

Из контроллера я использую project_function()->test1() или project_function()->test2().

Когда я вызываю эти два по отдельности, test2() не будет отображать никакого значения сеанса, но если я вызову test2() из test1(), тогда это будет отображать значение сеанса. я не знаю почему Есть ли правило для создания сессии только из контроллера? Потому что я пытался сделать это с нескольких контроллеров, и он работает нормально. (Я создал отдельный код сеанса отображения в другом контроллере, а один сеанс создает код в одном контроллере, и он работает нормально, так почему он не работает в модели и поставщике услуг?)

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Кажется, вы не можете получить доступ к сеансу в поставщике услуг. Проверьте следующую ссылку. https://github.com/laravel/framework/pull/7933

Для этого вам потребуется создать промежуточное программное обеспечение. Надеюсь, это поможет.

0 голосов
/ 17 января 2019

Код ниже создает сеанс и работает для меня.

\Session::put('email', 'abcd123@abc.com');
\Session::save();
0 голосов
/ 15 января 2019

Если вы вызываете метод test1 () для test2 (), то метод session () имеет значение email, потому что оно сделано методом put ('email', 'abcd123') из test1 (), но имеет доступ только из test2 () тогда оно не имеет email значения.

попробуй вот так (но я не тестировался в моей среде)

public function createSession(){
    $test = session()->put('email', 'abcd123');
    return self::viewsession_v1($test);
}
public function viewSession_v1($test){
    $data = $test->get('email');
    return $data;
}

Надеюсь, это поможет вам:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...