Ant*_*son 8 php session-variables laravel
我一直在寻找一种方法来做到这一点.我知道可以使用以下内容在会话中存储数组:Session::push('user.teams', 'developers');
是否可以使用闪存数据执行相同的操作?类似的东西Session::flashpush('user.teams', array('developers', 'designers'));
会很棒.
我此刻的用例主要有以下几点:
Session::flash('flash_message', $validator->messages());
Isr*_*uño 10
据我所知,你可以做到.我已经检查了以防万一:
Session::flash('test', array('test1', 'test2', 'test3'));
... After the request
dd(Session::get('test'));
// array(2) { [0]=> string(5) "test1" [1]=> string(5) "test2" [2]=> string(5) "test3" }
Run Code Online (Sandbox Code Playgroud)
有用.您还可以像Christopher Morrissey所评论的那样序列化数组或对象
我用这个:
Session::flash($key, array_merge((array)Session::get($key), array($value)));
Run Code Online (Sandbox Code Playgroud)
我创建了这个助手类:
<?php
class Flash {
public static function push($key, $value) {
$values = Session::get($key, []);
$values[] = $value;
Session::flash($key, $values);
}
}
Run Code Online (Sandbox Code Playgroud)
它允许您将多个项目推送到同一个键,以便在获取时始终返回一个数组。
用法:
Flash::push('success','Feature saved');
Run Code Online (Sandbox Code Playgroud)
Twig 模板(Blade 应该不会有太大的不同):
{% if session_has('success') %}
<div class="alert alert-block alert-success fade in">
<button class="close" data-dismiss="alert">×</button>
{% for msg in session_get('success') %}
<p><i class="fa-fw fa fa-check"></i> {{ msg }}</p>
{% endfor %}
</div>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
在您的场景中,您可能会像这样使用它:
Flash::push('flash_message', 'user.teams');
Flash::push('flash_message', 'developers');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13221 次 |
最近记录: |