如何使用 Laravel 5.2 在 eloquent 创建方法中自动包含来自 Request()->ip() 的客户端 ip 地址?
How to automatically include client ip address from Request()->ip() in eloquent create method using Laravel 5.2?
我有这套eloquent型号:
class UserModel extends Model
{
protected $fillable = array(
'first_name',
'last_name',
'email',
'password',
'ip',
);
protected $table = 'users';
}
我的想法是...每当 he/she 在我们的网站上注册为用户时,我都想包含客户端的 IP 地址。
在 Laravel 5.2 中,我们可以使用 Request() class
检索客户端 ip 地址
Request()->ip()
https://laravel.com/api/5.2/Illuminate/Http/Request.html#method_ip
使用 eloquent 模型创建用户记录时,我使用 create() 方法,因此我不必为我们分配每个字段的值,除了 [=29] =] 字段.
是否有任何方法可以自动为 UserModel 的 'IP' 字段分配来自 Request()->ip() 方法的值?
public function createNewUser(Request $request) {
return $this->user->create($request->all());
}
任何 suggestions/feedbacks 将不胜感激。
谢谢!
这样的事情怎么样:
public function createNewUser(Request $request) {
$requestArr = $request->all();
$requestArr['ip'] = $request()->ip();
return $this->user->create($requestArr);
}
或
public function createNewUser(Request $request) {
return $this->user->create(array_push($request->all(), array('ip' => $request()->ip())));
}
在网上进行了一些挖掘之后,我找到了执行此操作的可靠方法。
public function createNewUser(Request $request) {
$request->request->add(['ip' => $request->ip()]);
return $this->user->create($request->all());
}
@AlexeyMezenin 提供的答案也可以以某种方式工作,但您必须做一些额外的代码才能工作。还是谢谢了。
我有这套eloquent型号:
class UserModel extends Model
{
protected $fillable = array(
'first_name',
'last_name',
'email',
'password',
'ip',
);
protected $table = 'users';
}
我的想法是...每当 he/she 在我们的网站上注册为用户时,我都想包含客户端的 IP 地址。
在 Laravel 5.2 中,我们可以使用 Request() class
检索客户端 ip 地址Request()->ip()
https://laravel.com/api/5.2/Illuminate/Http/Request.html#method_ip
使用 eloquent 模型创建用户记录时,我使用 create() 方法,因此我不必为我们分配每个字段的值,除了 [=29] =] 字段.
是否有任何方法可以自动为 UserModel 的 'IP' 字段分配来自 Request()->ip() 方法的值?
public function createNewUser(Request $request) {
return $this->user->create($request->all());
}
任何 suggestions/feedbacks 将不胜感激。
谢谢!
这样的事情怎么样:
public function createNewUser(Request $request) {
$requestArr = $request->all();
$requestArr['ip'] = $request()->ip();
return $this->user->create($requestArr);
}
或
public function createNewUser(Request $request) {
return $this->user->create(array_push($request->all(), array('ip' => $request()->ip())));
}
在网上进行了一些挖掘之后,我找到了执行此操作的可靠方法。
public function createNewUser(Request $request) {
$request->request->add(['ip' => $request->ip()]);
return $this->user->create($request->all());
}
@AlexeyMezenin 提供的答案也可以以某种方式工作,但您必须做一些额外的代码才能工作。还是谢谢了。