2014-10-14 4 views
0

Мне было интересно, как я мог получить последний экземпляр сеанса с именем 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')]); 
} 

Кроме того, как я получить это из шаблона лезвия?

ответ

0

Я отредактировал свой код 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»

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

0

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

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

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

Получение значения из клинка:

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

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

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

<a href="{{ URL::to($smartBacklinks) }}" class="btn btn-mini btn-primary">Go back</a> 

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

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