2016-04-19 1 views
2

Я новичок в Laravel и используя Laravel 5 Я храню некоторые значения в сессии, как этотLaravel 5 сеансов не доступны для второй страницы

Это в контроллер с функцией сказать ABC

Session::put('check_in', $check_in); 
    Session::put('check_out', $check_out); 
    Session::put('no_of_rooms', $no_of_rooms); 
    Session::put('adult', $adult); 
    Session::put('child', $child); 
    return view('room'); 

Я получаю значения всех этих сессий в номерах посмотреть, но теперь проблема, когда я иду в какой-то другой ссылке или на другой странице с этой точки зрения проживания и использования сессии в качестве

echo Session::get('check_in')."<br>"; 
    echo Session::get('check_out')."<br>"; 
    echo Session::get('no_of_rooms')."<br><br>"; 
    echo Session::get('adult')."<br>"; 
    echo Session::get('child')."<br>"; 

Я не могу получить какое-либо из этих значений Сеансов.

Я использую Sessions поэтому он должен быть на всех страницах до сеанса вспыхивали или браузер закрывается, но его не извлечение какой-либо из значений Session ..

Я видел, возможно, тем, как это на стеке Переполнение, но я не могу понять эти ответы. Пожалуйста, объясните меня полностью и решите эту проблему. Я застрял в этой части с последних 4 до 5 дней. Не знаю.

+1

Какой у вас водитель сеанса? Он должен быть в 'config/session.php'. Если вы используете драйвер 'file', убедитесь, что ваша папка' framework/sessions' имеет доступ на запись к вашему веб-серверу. Также убедитесь, что вы не «выходите»() в любом месте, данные сеанса фактически записываются в сеанс в конце запроса, поэтому выполнение 'exit()' фактически остановит его от написания. –

+0

Мой драйвер сеанса - это файл. И я не знаю, как проверить, имеет ли каталог сеансов доступ на запись или нет, я удалил, чтобы проверить, сделаны ли файлы сеанса или нет, но они не генерируются, и я не использую Выход(). – Manish

+0

Здравствуйте Маниш, вы должны рассмотреть возможность чтения документации перед запуском проекта в определенной структуре. Вы должны сначала знать язык (php), шаблон mvc, а затем начать с рамки. Если вы не тратите время на чтение документации, у вас будет много проблем с вашим веб-приложением. Наслаждайтесь кодированием и поддерживайте хорошую работу! –

ответ

0

После создания новой установки laravel, ее работы.

+0

Не могли бы вы расширить ответ, чтобы объяснить другим программистам, как это помогло решить проблему. – Daenarys

0

Если вы используете Laravel 5 . *, тогда вы должны использовать «сетевое» промежуточное ПО во всех маршрутах для использования сеанса.

Это выглядит следующим образом: в routes.php в каталоге приложения/HTTP

Route::group(['middleware' => 'web'], function() { 

    Route::Auth(); 

    Route::get('/', '[email protected]'); 
    Route::get('/login', '[email protected]'); 
    Route::post('/login', '[email protected]'); 
} 

Вы можете использовать сеанс во всех этих маршрутах, объявив его в разделе «веб» ППО.

Я предлагаю вам прочитать больше о «веб» промежуточного слоя в Laravel 5.

Проверьте это: My Laravel 5.2.10 Sessions wont persist

ПРИМЕЧАНИЕ: На Laravel 5.2.27 веб промежуточного слоя теперь в месте по умолчанию, Попробуйте удалить группу Route :: и посмотреть, помогает ли это. https://github.com/laravel/laravel/blob/v5.2.27/app/Providers/RouteServiceProvider.php#L56

+0

Я попытался поместить его в промежуточное программное обеспечение, но его метать Error of Token Mismatch Exception – Manish

+0

вы должны установить токен в своей форме всякий раз, когда используете Auth(). –

+0

для стартера вы можете удалить Route :: Auth() в своем коде. –

Смежные вопросы