【发布时间】:2020-06-10 16:03:20
【问题描述】:
我正在尝试进行推荐申请。唯一的问题是,当我访问指向注册页面的链接时,我的 URL 中有一个参数,我不知道,我不知道如何从 URL 中获取该参数并将其分配给创建的用户。我试图做一个函数,但我没有再次意识到如何从创建的用户中的该函数变量中获取数据。
生成引荐链接的栏目:
<td>{{ route('refs.user',['name' => $referralCategory->name,'id'=>$referralCategory->id]) }}</td>
web.php
Route::get('refs/{name}/{id}','ReferralCategoryController@refs')->name('refs.user');
以及重定向到注册页面的功能
public function refs($name = null,$id = null){
//dd($name);
if(!$id){
return redirect(route('login'));
}
else{
if($id){
$refCategory = ReferralCategory::where('id', $id)->first();
ReferralCategory::where('id', $id)->update([
'referral_visits' => $refCategory->referral_visits + 1
]);
}
return redirect()->route('register', ['name' => $name]);
}
if(Cookie::get('id')){
return(route('register'));
}
return response(route('register'))
->cookie('id', $id, 60*24*30*12)
->cookie('name',$name, 60*24*30*12);
}
寄存器控制器:
Route::get('register/{name}','Auth\RegisterController@register_ref')->name('register_ref.cat');
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'referred_by' => 'string|max:20',
]);
}
public function register_ref( $name = null){
return redirect()->route('register', ['name' => $name]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
return User::create( [
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'referred_by' => $data['referred_by'],
]);
}
}
【问题讨论】:
-
嗨!是否要获取名称并放入注册表单视图?
-
不,我只是想取名字并插入表格,而不是将列放在表格中
-
查看
return redirect()->route('register', ['name' => $name]);您正在将名称发送到您的注册视图中,因此您必须将输入类型隐藏在您的注册视图中,并在您提交表单时将 $name 回显到隐藏类型值中然后您可以收到。有什么意义吗?让我知道。谢谢 -
我想我知道,您的意思是我必须将来自 URL 的名称接收到输入/标签字段中并隐藏,然后我必须在创建时接受该输入?
-
在 register.blade 我做这样的事情: {{ app('request')->input('name') }}
标签: php laravel laravel-artisan