繁体   English   中英

Laravel注册时获取文件内容并保存到数据库

[英]Laravel getting file content and save to DB when registering

我有以下代码:

    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'ip' => $_SERVER['REMOTE_ADDR'],
            'country' => 'http://ip-api.com/json/'.$_SERVER['REMOTE_ADDR'],
            'password' => bcrypt($data['password']),
            'secret_question' => $data['secret_question'],
            'question_answer' => $data['question_answer'],
        ]);
    }
}

这是Laravel控制器中称为AuthController.php注册功能

这行'ip' => $_SERVER['REMOTE_ADDR'],工作正常,我是gettig用户的IP。 这个http://ip-api.com/json/YOURipADDRESS API不仅可以检测位置,还可以根据IP地址检测更多内容。 我只需要从该API获取countryCode并将其存储到DB。 如何在此文件中正确执行?

编辑

这是我目前的职能,但数据库国家/地区为空。

protected function create(array $data)
{
    $user_details = json_decode(file_get_contents('http://ip-api.com/json/'.$_SERVER['REMOTE_ADDR']));
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'ip' => $_SERVER['REMOTE_ADDR'],
        'country' => $user_details->country,
        'password' => bcrypt($data['password']),
        'secret_question' => $data['secret_question'],
        'question_answer' => $data['question_answer'],
    ]);
}
$user_details = json_decode(file_get_contents('http://ip-api.com/json/your-ip-address'))

现在,您在$user_details所有详细信息作为json。 现在,您可以使用它来存储到数据库。

$user_details->country  //to get country

在您的AuthController.php

protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'ip' => $_SERVER['REMOTE_ADDR'],
            'country' => $this->getCountry($_SERVER['REMOTE_ADDR']),
            'password' => bcrypt($data['password']),
            'secret_question' => $data['secret_question'],
            'question_answer' => $data['question_answer'],
        ]);
    }

protected function getCountry($ip)
{
   return json_decode(file_get_contents('http://ip-api.com/json/your-ip-address'))->country;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM