Как читать параметры URL в 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(),
]);
}
}
Ответы - Как читать параметры URL в laravel / How to read URL parameters in laravel

29.11.2017 01:42:43
Вы можете получить свои параметры с помощью запроса доступа.
Вот один пример для получения вашего ref кода:
public function register(Request $request)
{
$allParams = $request->all();
$refParam = $request->ref;
dd($allParams, $refParam);
...
}

29.11.2017 01:44:30
Когда у вас есть URI, такой как /register?ref=mh2HPLpVSn
, вы можете получить ref
следующим образом:
$request()->ref
в вашем контроллере! Я полагаю, что вы также можете использовать $request()->has('ref')
, чтобы определить, присутствует ли он в URI.
Надеюсь, это вам поможет!!

29.11.2017 01:47:11
public function showRegister(Request $request) {
var_dump(request->ref)
}
затем вы можете делать такие вещи, как проверка и так далее, еще одна возможность-изменить шаблон вашей регистрационной формы и добавить скрытое поле с рефкодом из параметра ref и обработать весь запрос в вашем методе register.

06.09.2020 10:03:13
В laravel 6 + внутренний контроллер вы можете использовать как
$request->get('ResourcePath')