首先看web.php
Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login')->name('auth.login');
使用自带的user模型
读User模型:
use Notifiable, SoftDeletes;
Notifiable:通知消息
SoftDeletes:软删除
protected $hidden = [
'password', 'remember_token', 查询user时候隐藏查询字段
];
Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login')->name('auth.login');
均为AuthenticatesUsers当中的方法,laravel已经实现了。
User模型当中使用 use AuthenticatesUsers;引入
public function __construct()
{
$this->middleware('guest')->except('logout');
}
LoginController里面的构造方法
如果用户是guest,那就做某种操作
————————————————————————————————————————————————————————
Route::get('/dashboard', 'DashboardController')->name('dashboard');
使用DashboardController的构造方法
public function __invoke(Request $request)
{
return view('dashboard');
}
__invoke:单个动作,应该是只执行这一个方法
Builder 查询构建器
$this->middleware('role:admin')->except('index');
如果是管理员才能执行controller中的其他方法,不然进行跳转:
RoleCheck中:
进行处理
public function role()
{
return trans("role.{$this->role}"); 中英文翻译
}
$keyword = "%{$keyword}%";
return $builder->where(function ($builder) use ($keyword) {
$builder->whereHas('company', function ($builder) use ($keyword) {
$builder->where('name', 'like', $keyword);
})->orWhere('name', 'like', $keyword);
});
//->where(function ($builder) use ($keyword) {这是括号用来连接and和or符号
//keyword用来向下传递keyword