在我使用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') }}">
答案 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);
}