如何在 Laravel 中制作推荐计划?
How do I make a referral program in Laravel?
我正在尝试创建一个程序,其他用户可以使用其他已注册用户的 link 进行注册。所以,当有人被推荐时,url 会是这样的
mywebsite.com/register?ref_id=555 // ref_id is existing user id
我正在使用默认的 Laravel 身份验证。有一个隐藏的输入值,如果存在,它将包含 ref_id
的值。我的数据库有一个名为 referred_by
的列,它是一个 INT
并且默认设置为 null
。当有人使用 link 和 ref_id 注册时,该 ID 将保存到该用户行中。
但问题是它每次都被保存为空。
这是验证器在 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',
]);
}
这是创建方法的样子
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 作为字符串保存在隐藏的输入字段中,我尝试将其转换为整数,然后再放入数据库,但我无法让它工作。
我真的很困惑如何实现这一目标。
请帮我。
提前致谢。
您的创建函数有 'referred_id' => (int)$data['ref_id'],
但是您的列名称是 referred_by
,所以只需将 referred_id
更改为 referred_by
我正在尝试创建一个程序,其他用户可以使用其他已注册用户的 link 进行注册。所以,当有人被推荐时,url 会是这样的
mywebsite.com/register?ref_id=555 // ref_id is existing user id
我正在使用默认的 Laravel 身份验证。有一个隐藏的输入值,如果存在,它将包含 ref_id
的值。我的数据库有一个名为 referred_by
的列,它是一个 INT
并且默认设置为 null
。当有人使用 link 和 ref_id 注册时,该 ID 将保存到该用户行中。
但问题是它每次都被保存为空。
这是验证器在 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',
]);
}
这是创建方法的样子
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 作为字符串保存在隐藏的输入字段中,我尝试将其转换为整数,然后再放入数据库,但我无法让它工作。 我真的很困惑如何实现这一目标。 请帮我。 提前致谢。
您的创建函数有 'referred_id' => (int)$data['ref_id'],
但是您的列名称是 referred_by
,所以只需将 referred_id
更改为 referred_by