проверить введенные данные с базой данных в laravel 5.6? - PullRequest
0 голосов
/ 14 октября 2018

У меня 3 данные в таблице пользователя.

data in users table

при входе в систему я хочу проверить введенные данные со всеми данными в таблице,Я пытался, но это не работает.

  $user = User::where('status',1)->where('deleted_at',null)->get();
      print_r($user); die;

    if(User::where(['type' => $user_type,'user_id' => $user_id,'email' => $email,'password' => $password ,'status'=> 1, 'deleted_at' => null])){
   // if($user_type == $type && $user_id == $uid && $email == $uemail && Hash::check($password,$upass)){

       // echo "Sucess.";die;
        Session::put('userSession',$email);
        Session::put('loginSession',$user_type);

         return view('death_notice.dashboard');

    } else {
       echo "Failed.";die;
       return redirect('/user')->with('flash_message_error','Invalid Login Credentials..');
      }

Пожалуйста, помогите мне найти решение ...

Ответы [ 3 ]

0 голосов
/ 14 октября 2018

С этим связаны две проблемы.

  1. В первом операторе if вы вызываете ->get() в модели пользователя, что приведет к созданию коллекции пользователей, а неодин пользователь.Используйте ->first()

  2. Второй оператор if не вызывает ->first(), поэтому построитель запросов только что возвращается.

Laravelобеспечивает функцию входа в систему, в которую можно передавать дополнительные параметры.

$rememberMe = false;

if (auth()->attempt(['email' => $email, 'password' => $password, 'additional_check' => 'something-else'], $rememberMe) {
  // user is logged in
}

Теперь я не уверен, почему вам требуются два оператора if, они кажутся не связанными.

0 голосов
/ 14 октября 2018

ошибка в вашем условии if.

Для условия if необходимо передать значение boolean.

Но вы передали экземпляр Query Builder.

Чтобы получить логический вывод из базы данныхзапрос существования, вы можете позвонить exists()

if(User::where([
    'type' => $user_type,
    'user_id' => $user_id,
    'email' => $email,
    'password' => bcrypt($password) ,
    'status'=> 1,
    'deleted_at' => null])->exists())
0 голосов
/ 14 октября 2018

для проверки входа используйте

use Illuminate\Support\Facades\Auth;

Auth::attempt();

в вашем случае попробуйте

if(Auth::attempt(['type' => $user_type,'user_id' => $user_id,'email' => $email,'password' => $password ,'status'=> 1, 'deleted_at' => null])){
    // success
} else {
    // error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...