【发布时间】:2020-01-26 06:02:54
【问题描述】:
我们正在为学校制作一个 laravel 项目。我们有一个学校数据库,里面有教师、员工等用户。我的问题是如何防止来自特定学校的特定用户登录他们的学校状态标记为 = 0 或在学校数据库中为非活动状态?我已经从供应商那里获得了authenticated 功能,但它不起作用。我的人际关系错了吗?
状态在schools 表中,而不在users 表中,但我已经定义了关系。看看我的模型。
用户.php
public function schools()
{
return $this->belongsTo('App\School', 'school_id');
}
学校.php
public function user(){
return $this->hasMany('App\User');
}
登录控制器.php
use AuthenticatesUsers;
public function authenticated(Request $request)
{
$user = User::find(Auth::user()->id);
// dd($user->schools());
if($user->schools()->status == 1){
dd('active ');
}
dd('inactive');
【问题讨论】:
-
为状态创建一个类似于软删除的全局范围会有所帮助吗?就 ORM 而言,任何状态为 0 的学校都不存在。
标签: php mysql laravel authentication