我们已决定将$("foo").find($("bar"))
用于一个项目,作为对未来框架的测试运行,并且真的很喜欢它。不过,我们有一个问题。
我们使用处理Laravel
的特征Illuminate\Foundation\Auth\AuthenticatesUsers
。它运作良好。但是,我们在数据库中有一列名为user authentication
的列,它可以是userstatus
或0
。
我们如何将where子句注入1
特性中?
我在想这里(在我的Illuminate\Foundation\Auth\AuthenticatesUsers
中):
LoginController
但是我不知道该怎么public function authenticated($request , $user){
//if $user->userstatus != 1 logout and redirect to start page
}
(我现在正在研究)。
答案 0 :(得分:0)
您的逻辑是正确的,您应该在login
中重新定义authenticated
和LoginController
方法。
您的方法应如下所示:
此方法应在您的LoginController.php
内:
class LoginController extends Controller
{
use AuthenticatesUsers {
login as public loginParent;
}
protected function login(Request $request){
$default = '/';
$user = User::where('email', $request->get('email'))->NotActive->first();
if($user){
return redirect()->intended($default);
}
return $this->loginParent($request);
}
protected function authenticated(Request $request, $user)
{
if($user->not_active) {
$this->logout($request);
}
}
}
然后,我们应该在ScopeNotActive
模型中创建User.php
方法作为本地范围:
//User.php
public function ScopeNotActive($query){
return $query->where('userStatus', '!=', 1);
}
和一个Mutator来检查用户是否不活跃:
// User.php
public function getNotActiveAttribute(){
return $this->userStatus != 1;
}