2016-11-11 106 views
1

嗨我想要在laravel 5.1中的数据库中存储IP地址。我在谷歌搜索存储的IP地址,他们建议我存储IP地址,如Request :: IP( );或其他方法$ request-> ip();。当我使用这个,并保持这一行为$ request-> ip();那么它会打印IP地址。但是在注册过程中,我在auth控制器中使用了array $ data。在laravel注册时在数据库中存储IP地址5.1

protected function create(array $data) 
    { 
     return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
      'ip' => $data->ip(), 
     ]); 
    } 

的主要问题是当我使用这条线为存储IP这样 'IP'=> $ DATA-> IP(),它引起AuthController.php 呼叫错误
FatalErrorException一个成员函数ip()在非对象上。错误在这一行'ip'=> $ data-> ip()。你能帮我么。

+0

的var_dump你'$ data' – Drew

+0

你能解释它更 – babi

回答

0

你得到错误的原因是$data是一个数组,而不是一个对象。你不能在一个对象上调用函数。也许这将工作:

'ip' => $data['ip'] 
2

可以使用request()函数返回当前request实例为:

protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'ip' => request()->ip(), 
    ]); 
} 
+0

这是正确的方式做到这一点。给予好评 –

相关问题