簡體   English   中英

如何使用Laravel 5.2在雄辯的create方法中自動將Request()-> ip()中的客戶端IP地址包括在內?

[英]How to automatically include client ip address from Request()->ip() in eloquent create method using Laravel 5.2?

我有這套雄辯的模型:

    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

當使用雄辯的模型創建用戶記錄時,我使用create()方法,因此不必為“ IP”字段分配每個字段的值,而不必為我們做任何工作。

有什么方法可以自動分配UserModel中的“ IP”字段,其值來自Request()-> ip()方法?

public function createNewUser(Request $request) {

    return  $this->user->create($request->all());
}

任何建議/反饋將不勝感激。

謝謝!

這樣的事情怎么樣:

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提供的答案也可以以某種方式起作用,但是您必須做一些額外的代碼才能使其起作用。 不管怎么說,還是要謝謝你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM