我有一些表格
<form action="users/registration/new_user" method="post" class="new_user" enctype="multipart/form-data" novalidate="novalidate">
<div class="col-md-12 col-sm-12 col-xs-12 no-padding">
<div class="form-group col-md-2 col-sm-6 col-xs-12">
<label for="" class="dis-block">姓 <span class="text-error">※</span></label>
<input name="user_last_name" type="text" class="form-control" required="required">
</div>
<div class="form-group col-md-2 col-sm-6 col-xs-12">
<label for="" class="dis-block">名 <span class="text-error">※</span></label>
<input name="user_first_name" type="text" class="form-control" required="required">
</div>
</div>
<div class="col-md-12 col-sm-12 col-xs-12 no-padding">
<div class="form-group col-md-4 col-sm-6 col-sm-6 col-xs-12 ch-width-100">
<label for="" class="dis-block">Email <span class="text-error">※</span></label>
<input name="user_email" type="email" class="form-control" required="required">
</div>
</div>
</form>
在我的控制器上
public function postRegister(Request $request)
{
Session::put('user',['user_last_name'=>$request->user_last_name,'user_first_name'=>$request->user_first_name,'user_email'=>$request->user_email)]);
//Try echo to try it out
echo Session::get('user');
}
错误
ErrorException in SignupController.php line 146:
Array to string conversion
现在我必须将数组保存到Session中,当我需要调用它时,可以通过foreach调用值。 谢谢大家!
答案 0 :(得分:2)
当你这样做时
Session::put('user', [...]);
有效。您的错误来自
echo Session::get('user');
您正在尝试'回显'数组。替换为
dd(Session::get('user'));
// or
print_r(Session::get('user'));
要在foreach中使用它,只需执行
if ( Session::has('user')) {
foreach(Session::get('user') as $prop) {
echo $prop;
}
}
<强>更新强>
您要保存的用户是一个简单的数组。但似乎你真的想要一个物体。您应该像这样更改保存方式:
$user = (object) [
'user_last_name'=>$request->user_last_name,
'user_first_name'=>$request->user_first_name,
'user_email'=>$request->user_email
];
// or simply try like this
$user = (object) $request->all();
// or if you have a user Model
$user = new User($request->all());
然后将其保存在会话中
Session::put('user', $user);
最后,您可以在任何地方将其用作对象
$user = Session::get('user');
echo $user->user_last_name;
答案 1 :(得分:0)
对于 Laravel 8,session 不再是一个带有静态方法的类,而是 helpers.php 中的一个简单函数,可以根据指定的参数获取/设置会话值。您也可以通过请求对象访问会话,如下所述: