Laravel 5:向 $request->all() 添加数据
Posted
技术标签:
【中文标题】Laravel 5:向 $request->all() 添加数据【英文标题】:Laravel 5: add data to $request->all() 【发布时间】:2016-07-01 22:37:35 【问题描述】:我一直在尝试将当前登录用户的 id 添加到我的数据库中的一个字段中。
但是,没有存储任何内容。我尝试了以下方法:
public function store(StoreChildRequest $request)
$user = Auth::user();
$child = $request->all();
$child->merge(['user_id' => $user->id]);
$child = new Patient($child);
$child->save();
但是StoreChildRequest总是返回user_id没有传递。
这也没用:
public function store(StoreChildRequest $request)
$user = Auth::user();
Input::merge(['user_id' => $user->id]);
$child = new Patient($request->all());
$child->save();
同样的错误。
即使我尝试对固定数据执行此操作,合并也不会发生:
public function store(StoreChildRequest $request)
$user = Auth::user();
Input::merge(['user_id' => "01"]);
if($child = new Patient($request->all()))
$child->save();
return response()->json(['succes' => 'Child saved.']);
else
return response()
->json($request->getMessageBag()->toArray());
编辑 我注意到,当我删除 StoreChildRequest(验证)时,代码工作得很好。所以我要添加规则:
StoreChildRequest:
public function rules()
return [
'name' => 'required|max:255',
'givenname' => 'required|max:255',
'street' => 'required|max:255',
'streetnumber' => 'required|max:255',
'city' => 'required|max:255',
'postalcode' => 'required|digits:4',
'email' => 'required|email',
'birthdate' => 'required|date',
'sex' => 'required|max:1',
'user_id' => 'required'
];
那么错误就在这里?
感谢您的帮助。
【问题讨论】:
dd($user) 返回User
对象对吗?
是的,确实如此。发生了一些奇怪的事情。如果我不使用 StoreChildRequest 验证代码,则代码可以工作......我将把我的 StoreChildRequest 添加到问题中。
如果这个请求是发布的,那么你的 $request->all();有csrf索引,这个字段不在你的表中。
我认为这不是问题所在。因为当我从 StoreChildRequest 中删除 'user_id' => 'required' 时,代码也可以正常工作(不关心 _token)。
您在post
中得到user_id
?
【参考方案1】:
你可以这样做:
$user = Auth::user();
$child = $request->all();
$child['user_id'] = $user->id;
$child = new Patient($child);
$child->save();
另外,你可以试试:
$user = Auth::user();
$request->request->add(['user_id' => $user->id]);
$child = $request->all();
$child = new Patient($child);
$child->save();
【讨论】:
这确实是正确的。但显然我的问题在于请求(而不是将 user_id 添加到数据中)。谢谢你的回答。以上是关于Laravel 5:向 $request->all() 添加数据的主要内容,如果未能解决你的问题,请参考以下文章
$request->user() 在 Laravel 5.5 中返回 null