我正在尝试laravel 5.1并根据文档我添加了这些路线:
-
Route :: get('auth / login','Auth \ _AuthController @ getLogin');
-
Route :: post('auth / login','Auth \ AuthController @ postLogin');
-
Route :: get('auth / logout','Auth \ AuthController @ getLogout');
注册路线......
-
Route :: get('auth / register','Auth \ _AuthController @ getRegister');
-
Route :: post('auth/register','Auth\AuthController@postRegister');
我在 auth 文件夹下创建了两个简单的视图: login.blade.php register.blade.php
它工作了!但是当我打开AuthController类时,我找不到getlogin()或getregister()或其他方法只有验证器和创建方法,那么getlogin(),getregister(),postlogin()等等在哪里呢?
3 回答
AuthController
可能如下所示:Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers
是一个特征,AuthController
使用(使用AuthenticatesAndRegistersUsers)这个特征,这个特征使用了另外两个特征AuthenticatesUsers
和RegistersUsers
,检查AuthenticatesAndRegistersUsers
特征:在这种情况下,
AuthenticatesUsers
和RegistersUsers
traits包含用于登录和注册的方法 . 您可以在Illuminate/Foundation/Auth
找到这些特征,例如AuthenticatesUsers
包含以下方法(包括其他方法):还有其他可用的方法,检查那些以澄清您的理解 . 如果您不熟悉
PHP
中的traits
,请在PHP
手册上查看PHP traits .如果你看一下
AuthController.php
的顶部,你会发现这一行:就在课程开始时,你会发现:
我们可以忽略
ThrottlesLogins
,因为它可以做其他事情(它确保机器人不能自动尝试暴力进入你的系统) . 查看Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers
的内容,这是整个文件:这两个
AuthenticatesUsers
和RegistersUsers
是由AuthController实现的特性,因此它可以使用其中定义的所有方法 .例如,
getLogin()
方法是AuthenticatesUsers
特征中的第一个方法 .与身份验证相关的所有控制器都存储在Laravel中:
(
ThrottlesLogins.php
仅适用于Laravel 5.1)