【发布时间】: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?
标签: database laravel laravel-5 controller