Помимо всех (хорошо объясненных) ответов, не было упомянутых ниже, и я часто посещаю этот Q & amp; A.
В двух словах; MySQL думает, что вы хотите сделать математику в своей таблице / столбце и интерпретируете дефисы, такие как «электронная почта», как e
минус mail
.
Отказ от ответственности: Поэтому я думал, что добавлю это как ответ типа «FYI» для тех, кто совершенно не знаком с работой с базами данных, и которые могут не понимать уже описанные технические термины.
Вы настроили таблицу auth.php
и использовали members
для аутентификации, но в таблице members
нет поля user_email
, поэтому Laravel говорит
SQLSTATE [42S22] : Столбец не найден: 1054 Неизвестный столбец 'user_email' в 'where clause' (SQL: select * from members, где user_email =? Limit 1) (Bindings: array (0 => 'test@hotmail.com',))
blockquote>Поскольку он пытается сопоставить
user_email
в таблицеmembers
, и его нет. Согласно вашей конфигурацииauth
,laravel
использует таблицуmembers
для аутентификации, а не таблицуusers
.
Попробуйте изменить, где Member class
public function users() {
return $this->hasOne('User');
}
return $this->belongsTo('User');
У вас нет поля с именем user_email
в таблице участников ... почему я не уверен, что код «выглядит» как будто он должен попытаться присоединиться к различным полям
Использует ли метод Auth :: try соединение в схеме? Запустите grep -Rl 'class Auth' /path/to/framework
и найдите, где находится метод attempt
и что он делает.