如何在管理控制器上将2个参数传递给我的中间件

时间:2017-05-02 03:53:22

标签: php laravel-5 middleware controllers

我有一个管理员控制器,我想通过参数允许超级管理员执行管理员工作。

这是我的控制器:

class adminController extends Controller
{
    public function __construct(){

        $this->middleware('admin');
    }
    public function showGenerateCode(){
        $code ="";
        return view('create_code',compact('code'));
    }
    public function generateCode(Request $request){
        $phone = $request['phone'];
        $code = "";
        $user = User::where('phone' ,'=',$phone)->first();
        if($user){
            $code = "Ce numero de telephone et deja associé a un utilisateur";
            return view('create_code',compact('code'));
            //dd($code);
        }
        else{
            $code = "Code d'autorisation générer avec succé : ".substr($phone,1,3).rand(1000000,9999999);
            return view('create_code',compact('code'));
        }
    }
}

1 个答案:

答案 0 :(得分:3)

将它们作为数组传递

$this->middleware(['admin', 'superAdmin']);

如果它不适用于数组,请单独传递它们

$this->middleware('admin');
$this->middleware('superAdmin');

不是您问题的解决方案,而是一种解决方法,因为您尝试的所有内容都无效。您可以从构造函数中删除中间件,而是将它们应用于从该构造函数调用函数的路由

Route::group(['middleware' => ['admin', 'superadmin']], function(){
    Route::get('url1', 'adminController@function1');
    Route::get('url2', 'adminController@function2');
    Route::post('url3', 'adminController@function3');
});

试一试,看看它是怎么回事。