如何使用 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 提供的答案也可以以某种方式工作,但您必须做一些额外的代码才能工作。还是谢谢了。