我有这套雄辩的模型:
class UserModel extends Model
{
protected $fillable = array(
'first_name',
'last_name',
'email',
'password',
'ip',
);
protected $table = 'users';
}
这个想法是......我想在他/她在我们的网站上注册用户时包含客户的IP地址。
在Laravel 5.2中,我们可以使用Request()类
检索客户端IP地址请求() - > IP()
https://laravel.com/api/5.2/Illuminate/Http/Request.html#method_ip
使用eloquent模型创建用户记录时,我使用create()方法,所以我不必为我们分配每个字段的值,除了IP&#39 ;字段。
有没有办法自动分配“IP'来自UserModel的字段,其值来自Request() - > ip()方法?
public function createNewUser(Request $request) {
return $this->user->create($request->all());
}
任何建议/反馈都将不胜感激。
谢谢!
答案 0 :(得分:0)
这样的事情怎么样:
public function createNewUser(Request $request) {
$requestArr = $request->all();
$requestArr['ip'] = $request()->ip();
return $this->user->create($requestArr);
}
OR
public function createNewUser(Request $request) {
return $this->user->create(array_push($request->all(), array('ip' => $request()->ip())));
}
答案 1 :(得分:0)
经过网上挖掘后,我发现了做这件事的可靠方法。
public function createNewUser(Request $request) {
$request->request->add(['ip' => $request->ip()]);
return $this->user->create($request->all());
}
@AlexeyMezenin提供的答案也会以某种方式起作用,但你必须做一些额外的代码才能使它工作。不管怎样,谢谢。