从 laravel 5 中的 url 参数向模型添加价值

Adding value to a model from url params in laravel 5

尝试使用 laravel 5.4 中的推荐系统。我已经能够为每个用户创建一个独特的可共享 link。

当另一个用户点击它时,我希望将 url 中带有 link 原始所有者的推荐 ID 的部分添加到 referrer 字段中用户。

我试过这个方法,但一直出现这个错误,有什么更好的方法可以做到这一点。

 use Illuminate\Support\Facades\Input;

 protected function create(array $data)
     {

    $ref = Input::get('ref');

    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        'referrer' => $ref

    ]);

    return $user;

}

我收到一条错误消息,抱怨 referrer 列不能为空,即使 link 上有一个引用。 示例 link.

http://localhost:8000/register?ref=1b0a6294-043d-11e7-86bf-56847afe9799

用户模型

protected $fillable = [
    'name', 'email', 'password', 'level', 'btc_address', 'referrer'
];` 

我认为问题可能出在您的路由和 url 您在注册用户的表单中使用。

你显示的url可能是用来显示注册表的,但是你发送表格的时候是发送给http://localhost:8000/registerurl所以你没有ref 在您的 url 中定义。

您应该确保您也将表单发送到 http://localhost:8000/register?ref=1b0a6294-043d-11e7-86bf-56847afe9799 url 或将隐藏字段与 ref 值一起放入 get 操作中。