获取URL参数以在Laravel中验证登录控制器

时间:2019-07-30 09:16:24

标签: laravel get-request getmethod

我正在尝试获取其中的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");
}

2 个答案:

答案 0 :(得分:1)

从查询字符串中检索输入

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

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

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

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

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

$query = $request->query();

Documentation

答案 1 :(得分:0)

我想,我找到了解决方案。

在我的 login.blade.php中,

我尝试使用此代码获取url参数

 if(isset($_GET['merchId'])){
 $merchId = $_GET['merchId'];
 }else{
 $merchId = "none";
 }

在我的merchId内放一个隐藏的文本框,其中包含Form Action的值

类似

   <input type="text" name="merchId" value="<?= $merchId ?>" >

,然后在我的 LoginController.php 中,输入以下代码以显示控制器是否从login.blade.php

获取请求

protected function authenticated(Request $request, User $user)

   return $request->all();

结果就是这样

    {"_token":"2UvDCxls3WY27h8GpEJTJ8oZytfl1LmkseIU0hWY","merchId":"22","email":"keighdee@gmail.com","password":"mycrush"}

我知道这不是一个好习惯,但是如果您对这个问题有更好的答案,仍然可以随时对此问题进行回答或发表评论