如何在Laravel中创建推荐计划? [英] How do I make a referral program in Laravel?

查看:118
本文介绍了如何在Laravel中创建推荐计划?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个程序,其他用户可以使用其他已注册用户的链接进行注册.因此,当一个被引用时,这就是网址的样子

I am trying to create a program where other users can sign up using links of other already registered users. So, when one is referred, this is how the url would look like

mywebsite.com/register?ref_id=555 // ref_id is existing user id

我正在使用默认的Laravel身份验证.存在一个隐藏的输入值,该值将包含ref_id的值(如果存在).我的数据库有一个名为referred_by的列,该列为INT,默认情况下设置为null.当有人使用带有ref_id的链接进行注册时,该ID将被保存到该用户行中. 但是问题在于它每次都被保存为null.

I am using the default Laravel auth. There is a hidden input value which would contain the value of ref_id if it exists. My database has a column called referred_by which is an INTand set to null by default. When someone registers using the link with ref_id, that id will get saved into that user row. But the problem is it's getting saved as null everytime.

这是验证器在Auth/RegisterController.php

protected function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => 'required|max:40',
        'last_name' => 'required|max:40',
        'email' => 'required|email|max:255|unique:users',
        'account_name' => 'required|max:80',
        'account_number'=> 'required|max:15',
        'bank_name'=> 'required|max:30',
        'phone_number' => 'required|max:15',
        'ref_id' => 'nullable|numeric',
        'username' => 'required|max:15|unique:users',
        'password' => 'required|min:6|confirmed',
    ]);
}

这就是create方法的样子

and this is how the create method look like

protected function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'email' => $data['email'],
        'account_name'=> $data['account_name'],
        'account_number' => $data['account_number'],
        'bank_name'=> $data['bank_name'],
        'phone_number'=> $data['phone_number'],
        'username' => $data['username'],
        'referred_id' => (int)$data['ref_id'],
        'password' => bcrypt($data['password']),
    ]);
}

由于ref_id作为字符串保存在隐藏的输入字段中,因此我尝试在将其转换为整数之前将其放入数据库中,但无法使其正常工作. 我对如何实现这一目标感到非常困惑. 请帮我. 提前致谢.

Since ref_id is saved in the hidden input field as a string, I tried converting it into an integer before putting into the database but I am not able to get it to work. I am really confused on how I can achieve this. Please help me. Thanks in advance.

推荐答案

您的create函数具有'referred_id' => (int)$data['ref_id'], 但您的列名称为referred_by,因此只需将referred_id更改为referred_by

Your create function has 'referred_id' => (int)$data['ref_id'], but your column name is referred_by, so just change referred_id to referred_by

这篇关于如何在Laravel中创建推荐计划?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆