Laravel 在控制器的构造函数中指定中间件
下面是来自laravel内置RegisterController的代码片段Laravel 在控制器的构造函数中指定中间件,laravel,authentication,namespaces,Laravel,Authentication,Namespaces,下面是来自laravel内置RegisterController的代码片段 public function __construct(){ $this->middleware('guest'); //What does it actually do? } 我知道在应用程序中定义中间件是一个很好的实践 控制器构造函数,但我需要知道 $this->middleware'guest'实际做什么,参数在哪里 ? 就这样定了。 第二个问题:在同一个控制器RegisterContr
public function __construct(){
$this->middleware('guest'); //What does it actually do?
}
我知道在应用程序中定义中间件是一个很好的实践
控制器构造函数,但我需要知道
$this->middleware'guest'实际做什么,参数在哪里
? 就这样定了。
第二个问题:在同一个控制器RegisterController中,我们使用在namespace-illumb\Foundation\Auth中定义的RegisterUser,但似乎我们从未在控制器重写方法或属性的整个过程中使用它。我有点困惑。提前通知!
类注册控制器扩展控制器
{
}1$this->middleware。。。在控制器的构造函数中调用只会添加其中的值。。。到控制器上名为中间件的数组。就在那一点上。在那一点上没有运行任何程序。您可以在控制器扩展的控制器中看到此功能,即Lightning\Routing\Controller
稍后,当路由器需要分派请求时,它将构建一个中间件堆栈,通过收集中间件来传递请求,包括通过getMiddleware向控制器实例询问其定义的中间件
2特点是在控制器中包含功能和变量。控制器上有指向其中一些方法的路由
你可以把所有的代码粘贴到你的控制器上,基本上是一样的
如果您需要更改该控制器的任何功能或对其进行自定义,那么最终将重新定义其中一些方法或调整变量
use RegistersUsers; //?????
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* 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, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
public function getMiddleware()
{
return $this->middleware;
}