2016-02-28 36 views
1

我有这一套雄辩模式:如何使用Laravel 5.2在eloquent create方法中自动包含来自Request() - > ip()的客户端IP地址?

class UserModel extends Model 
    { 
     protected $fillable = array(
       'first_name', 
       'last_name', 
       'email', 
       'password', 
       'ip', 
      ); 

     protected $table = 'users'; 
    } 

的想法是......我想,只要他/她注册成为用户在我们网站上,包括客户端的IP地址。

在Laravel 5.2,我们可以使用要求()类

请求获取客户端的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()); 
} 

任何建议/意见将不胜感激。

谢谢!

回答

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()))); 
} 
+0

我很高兴能帮上忙。 ) –

0

网络上的一些挖后,我找到了肯定的方式来做到这一点的东西。

public function createNewUser(Request $request) { 

    $request->request->add(['ip' => $request->ip()]); 

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

由@AlexeyMezenin提供的答案也莫名其妙地工作,但你必须做的,它的工作的一些点点额外的代码。不管怎么说,还是要谢谢你。