在我的项目中,如果是否满足条件,我该怎么办?

时间:2019-09-25 17:20:43

标签: php laravel laravel-5 eloquent

if (Registration::where(['email', '=', $email, 'password', '=', $pwd, 'is admin', '=', 1]))
{
    Session()->put('admin email', $email);

    return redirect('admin');
}
else
{
    if (Registration::where(['email', '=', Input::get('email'), 'password', '=', Input::get('password'), 'is admin', '=', 0]))
    {
        Session()->put('email', $email);

        return redirect('/');
    }
}

任何未注册的用户都可以登录,而不先检查是否可以,如果可以更改重定向路径,则首先可以确定条件是否可以工作

1 个答案:

答案 0 :(得分:1)

首先,您的where子句看起来有些奇怪。尝试像这样应用它们:

    $condition1 = Registration::where([
        ['email', '=', $email],
        ['password', '=', $pwd],
        ['is admin', '=', 1],
    ])->count();

    $condition2 = Registration::where([
        ['email', '=', Input::get('email')],
        ['password', '=', Input::get('password')],
        ['is admin', '=', 0],
    ])->count();

    if ($condition1)
    {
        Session()->put('admin email', $email);

        return redirect('admin');
    }
    else
    {
        if ($condition2)
        {
            Session()->put('email', $email);

            return redirect('/');
        }
    }

您也可以这样做:

    $condition1 = Registration
        ::where('email', '=', $email)
        ->where('password', '=', $pwd)
        ->where('is admin', '=', 1)
        ->count();

    $condition2 = Registration
        ::where('email', '=', Input::get('email'))
        ->where('password', '=', Input::get('password'))
        ->where('is admin', '=', 0)
        ->count();

    // ...