首页 > 解决方案 > 在 Laravel 中获取 URL 参数以验证登录控制器

问题描述

我试图得到url param这个

http://localhost:8000/login?merchId=ABC&param1=abc123&param2=abc123

这些参数在重定向到我的登录页面时从另一个站点发送,并且我的项目的登录页面应该获取所有这些参数并在我的控制器中执行一些逻辑任务。

如上所述,我需要得到ff的值:

merchId, param1 and param2

php native,我可以简单地使用这段代码来获取这些参数

使用这个:

$merchId = $_GET['merchId'];
$param1 = $_GET['param1'];
$param2 = $_GET['param2'];

但是还有另一种方法可以做到这一点。

目前我正在使用的项目的登录名是Auth

这是我的LoginController.php,我想在其中使用并获取 url 参数并执行一些操作。

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected function authenticated(Request $request, User $user){
        if($user->is_admin == 1){
            return  redirect('/admin/view/all');
        }
        else{
            return redirect('/reseller/reservation/view');
        }
    }


    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}

这是我的路线

Route::get('/','HomeController@index');
Route::group(['middleware'=> ['auth']], function(){
    Route::get('/reseller/reservation/view','ResellerController@reservation');
    Other routes included here no need to show......
});

这是我的HomeController

public function __construct()
{
    $this->middleware('auth');
}

/**
 * Show the application dashboard.
 *
 * @return \Illuminate\Contracts\Support\Renderable
 */
public function index()
{   

    $searched = 0;
    $reseller = User::orderBy('created_at', 'desc')
    ->where('is_blocked', '0')  
    ->where('is_admin', '0')          
    ->paginate(20);
    return view('pages.admin.view', compact('reseller', 'searched'));    
}

public function admin(Request $req){
    return view('middleware')->withMessage("Admin");
}

标签: laravelget-requestgetmethod

解决方案


从查询字符串中检索输入

虽然输入方法从整个请求负载(包括查询字符串)中检索值,但查询方法将仅从查询字符串中检索值:

$name = $request->query('name');

如果请求的查询字符串值数据不存在,则返回此方法的第二个参数:

$name = $request->query('name', 'Helen');

您可以不带任何参数调用查询方法,以便将所有查询字符串值作为关联数组检索:

$query = $request->query();

文档


推荐阅读