检索会话中的最后一个项目:


Retrieve last item in Session::

我想知道如何检索会话中名为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')]);
}

此外,我如何从刀片模板中检索它?

您可以根据如下密钥从会话中检索"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>

希望能有所帮助。

我编辑了很多代码,现在它正在运行。我仍然需要添加一些调整,使其表现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"

谢谢你的回答!