如何读取 laravel 中的 URL 参数
How to read URL parameters in laravel
我是初学者,正在尝试创建一个推荐系统。以下是示例 url
http://dev.lea.com/register?ref=mh2HPLpVSn
我尝试获取推荐字符串。我怎样才能分开?获取cookie需要中间件吗?如果是,那么中间件代码是什么?以及如何在 RegisterController 中获得推荐参考?
这是我的注册控制器。
<?php
namespace Lea\Http\Controllers\Auth;
use DB;
use Lea\User;
use Lea\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
use Cookie;
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 = '/';
/**
* 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, [
'fname' => 'required|string|max:255',
'lname' => 'required|string|max:255',
'referral' => 'string|max:255',
'username' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
// 'tracking_id' => 'required',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \Lea\User
*/
protected function create(array $data, Request $request)
{
// printing here referral Link
echo $request()->ref;
// $referred_by = Cookie::get();
// print_r($referred_by);
die;
return User::create([
'fname' => $data['fname'],
'lname' => $data['lname'],
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'affiliate_id' => str_random(10),
// 'referred_by' => $referred_by,
'identity' => $data['identity'],
'dob' => $data['dob'],
'board_id' => $data['board_id'],
'class_id' => $data['class_id'],
'subject_id' => $data['subject_id'],
'institute' => $data['institute'],
'address' => $data['address'],
'city' => $data['city'],
'std_mobile' => $data['std_mobile'],
'father_name' => $data['father_name'],
'father_mobile' => $data['father_mob'],
'ipadress' => \Request::ip(),
]);
}
}
您可以使用请求访问获取您的参数。
这里有一个获取参考代码的示例:
public function register(Request $request)
{
$allParams = $request->all();
$refParam = $request->ref;
dd($allParams, $refParam);
...
}
当你有一个像 /register?ref=mh2HPLpVSn
这样的 URI 时,你可以像这样检索 ref
:
$request()->ref
在你的控制器中!我相信您也可以使用 $request()->has('ref')
来确定它是否存在于 URI 中。
希望对您有所帮助!!
public function showRegister(Request $request) {
var_dump(request->ref)
}
然后你可以做验证之类的事情,另一种可能性是改变你的注册表单的模板,并添加一个隐藏字段,其中包含来自 ref 参数的 refcode,并在你的 register 方法中处理整个请求。
在 laravel 6+ 内部控制器中你可以使用 like
$request->get('ResourcePath')
我是初学者,正在尝试创建一个推荐系统。以下是示例 url
http://dev.lea.com/register?ref=mh2HPLpVSn
我尝试获取推荐字符串。我怎样才能分开?获取cookie需要中间件吗?如果是,那么中间件代码是什么?以及如何在 RegisterController 中获得推荐参考?
这是我的注册控制器。
<?php
namespace Lea\Http\Controllers\Auth;
use DB;
use Lea\User;
use Lea\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
use Cookie;
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 = '/';
/**
* 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, [
'fname' => 'required|string|max:255',
'lname' => 'required|string|max:255',
'referral' => 'string|max:255',
'username' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
// 'tracking_id' => 'required',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \Lea\User
*/
protected function create(array $data, Request $request)
{
// printing here referral Link
echo $request()->ref;
// $referred_by = Cookie::get();
// print_r($referred_by);
die;
return User::create([
'fname' => $data['fname'],
'lname' => $data['lname'],
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'affiliate_id' => str_random(10),
// 'referred_by' => $referred_by,
'identity' => $data['identity'],
'dob' => $data['dob'],
'board_id' => $data['board_id'],
'class_id' => $data['class_id'],
'subject_id' => $data['subject_id'],
'institute' => $data['institute'],
'address' => $data['address'],
'city' => $data['city'],
'std_mobile' => $data['std_mobile'],
'father_name' => $data['father_name'],
'father_mobile' => $data['father_mob'],
'ipadress' => \Request::ip(),
]);
}
}
您可以使用请求访问获取您的参数。
这里有一个获取参考代码的示例:
public function register(Request $request)
{
$allParams = $request->all();
$refParam = $request->ref;
dd($allParams, $refParam);
...
}
当你有一个像 /register?ref=mh2HPLpVSn
这样的 URI 时,你可以像这样检索 ref
:
$request()->ref
在你的控制器中!我相信您也可以使用 $request()->has('ref')
来确定它是否存在于 URI 中。
希望对您有所帮助!!
public function showRegister(Request $request) {
var_dump(request->ref)
}
然后你可以做验证之类的事情,另一种可能性是改变你的注册表单的模板,并添加一个隐藏字段,其中包含来自 ref 参数的 refcode,并在你的 register 方法中处理整个请求。
在 laravel 6+ 内部控制器中你可以使用 like
$request->get('ResourcePath')