Laravel:检查是否有必要进行会话?

时间:2017-10-23 21:13:11

标签: php session laravel-5

在我使用Laravel之前,我做了以下事情:

<input type="text" name="comment" value="<?php if(isset($_SESSION['comment'])) echo $_SESSION['comment']; ?>">

我必须检查$_SESSION['comment']是否存在才能防止出现警告。现在在我的刀片文件中,我可以将其转换为

<input type="text" name="comment" value="{{ (isset(session('comment')) ? session('comment') : ''}}">

但我想知道是否仍然需要检查会话是否存在或者我是否可以简单地写

<input type="text" name="comment" value="{{ session('comment') }}">

我在docs中找不到。我正在查看API,但我意识到我不知道哪个类可以找到全局辅助函数..

1 个答案:

答案 0 :(得分:1)

您无需检查会话是否已启动。它会在Laravel中自动启动。

如果您尝试显示不存在的session(variable),则会获得null

但是如果你想要一个默认值,你将它作为第二个参数传递:

var_dump(session('Lorem ipsum4', 'default value'));
// will result in: 
// "default value"

laravel中的所有magic 帮助方法都放在文件vendor/laravel/framework/src/Illuminate/Foundation/helpers.php中。你会在那里找到function session定义,如下所示:

function session($key = null, $default = null)
{
    if (is_null($key)) {
        return app('session');
    }

    if (is_array($key)) {
        return app('session')->put($key);
    }

    return app('session')->get($key, $default);
}