Laravel 5:将数据添加到$ request-> all()

时间:2016-03-16 07:19:34

标签: database laravel laravel-5 controller

我一直在尝试将当前登录用户的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'
    ];
}

错误必须在这里吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

$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();