Получить последний элемент в сеансе ::

Мне было интересно, как получить последний экземпляр сеанса с именем smartBacklinks.

Вот код

if(Session::has('smartBacklinks'))
{
 // if(Request::header('referer') === LAST ITEM IN SESSION[smartBacklinks] ARRAY)
 Session::push('smartBacklinks', Request::header('referer'));
}
else
{
 Session::put('smartBacklinks', [Request::header('referer')]);
}

Также как я извлекаю это из шаблона клинка?

2 ответа

Я отредактировал свой код alot, и теперь он работает. Мне все еще нужно добавить несколько настроек, чтобы заставить его вести себя на 100%, поскольку мне это нужно

Код выглядит следующим образом:

if(Session::has('smartBacklinks')){
 // Get the last item in Session array 
 $slice = array_slice(Session::get('smartBacklinks'), -1, 1);

 // Check if Request::header('referer') is equal to the $slide[0]
 if(Request::header('referer') != $slice[0]){
 // Check if Request::header('referer') is empty
 if(Request::header('referer') != '') Session::push('smartBacklinks', Request::header('referer'));
 }
 // If session[smartBacklinks] is not set. - Set
 }else {
 Session::put('smartBacklinks', [Request::header('referer')]);

 $slice = array_slice(Session::get('smartBacklinks'), -1, 1);
 }

Session::save();

Тогда, конечно, последний экземпляр массива сеансов

$slice[0]

Последнее, что мне нужно добавить:

  • когда нажата кнопка "Назад", она должна удалить последний экземпляр массива сеансов и не должна указывать URL-адрес в сеанс
  • Мне нужно убедиться, что сессия загружена правильно, поэтому мне не нужно обновлять веб-страницу, чтобы получить правильный "обратный URL",

Спасибо за ответ!


Вы можете получить "smartBacklinks" из сеанса на основе такого ключа:

$value = Session::get('smartBacklinks');

Кроме того, вы можете заметить, что вы используете Session::push() для Session::put() значения сеанса массива и используете Session::put() для простого хранения элемента в сеансе.

Извлечение значения из клинка:

Я думаю, вы могли бы передать переменную, только что полученную в виде с контроллера, например:

return View::make('foo.bar', array('smartBacklinks' => $value));

затем используйте его в лезвии так:

<a href="{{ URL::to($smartBacklinks) }}" target="_blank">Go back</a>

Надеюсь, это поможет.

licensed under cc by-sa 3.0 with attribution.