我试图通过将请求对象作为数组传递来创建记录,如
User::create($request->toArray());
这样可以正常工作,并在表格中创建记录。
但是我需要在创建记录之前操作一个字段,
$request->password = bcrypt($request->password);
//echo $request->password;
User::create($request->toArray());
这不起作用,表中创建的记录仍然具有旧的未加密值
我可以确认$request->password
确实有加密值。 $request->toArray()
电话中似乎发生了一些事情。
我在这里缺少什么?
答案 0 :(得分:1)
您只需更改Request对象,但可以执行此操作:
User::create(['password' => bcrypt($request->password)] + $request->all());
但更好的方法是使用mutator password
属性:
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}
然后就这样做:
User::create($request->all());
答案 1 :(得分:0)
您可以array_merge
将password
添加到$request->toArray()
$password = bcrypt($request->password);
$data = array_merge($request->toArray(), compact('password'))
User::create($data);