я сохранял данные формы и получил сообщение об ошибке «SQLSTATE [42S02]: базовая таблица или представление не найдено: 1146 Таблица« crm.email »не существует (соединение: mysql, SQL: выберите count (*) как агрегат из email
где email
= [email protected])"
Я отправляю данные формы на сервер, это мой код
<form action = "{{route('CustomerCheckStore')}}" method = "post">
@csrf
<div class = "cusmrentryforminput">
<input type = "text" name = "name" placeholder = "*" required = "">
<span>Name</span>
@error('name')
<p class = "err">{{$message}}</p>
@enderror
</div>
<div class = "cusmrentryforminput">
<input type = "email" name = "email" placeholder = "*" required = "">
<span>Email</span>
@error('email')
<p class = "err">{{$message}}</p>
@enderror
</div>
<div class = "cusmrentryforminput">
<input type = "phonenumber" name = "phonenumber" placeholder = "*" required = "">
<span>Phonenumber</span>
@error('phonenumber')
<p class = "err">{{$message}}</p>
@enderror
</div>
<div class = "cusmrentryforminput">
<input type = "text" name = "address" placeholder = "*" required = "">
<span>Address</span>
@error('address')
<p class = "err">{{$message}}</p>
@enderror
</div>
<div class = "cusmrentryforminput">
<input type = "text" name = "zipcode" placeholder = "*" required = "">
<span>Zip Code</span>
@error('zipcode')
<p class = "err">{{$message}}</p>
@enderror
</div>
<div class = "cusmrentryforminput">
<input type = "country" name = "country" placeholder = "*" required = "">
<span>Country</span>
@error('country')
<p class = "err">{{$message}}</p>
@enderror
</div>
<div class = "cusmrentryforminput">
<input type = "text" name = "cardhodler" placeholder = "Optional">
<span>Card Holder</span>
</div>
<div class = "cusmrentryforminput">
<input type = "text" name = "cardnumber" placeholder = "Optional">
<span>Card Number</span>
</div>
<div class = "cusmrentryforminput">
<input type = "number" name = "cardexpire" placeholder = "MM/YY">
<span>Expire Date</span>
</div>
<div class = "cusmrentryforminput">
<input type = "number" name = "cvv" placeholder = "Optional" min = "3" max = "3">
<span>CVV</span>
</div>
<div class = "cusmrentryforminput">
<input type = "Remarks" name = "remarks" placeholder = "*" required = "">
<span>Remarks</span>
@error('remarks')
<p class = "err">{{$message}}</p>
@enderror
</div>
<div class = "cusmrentryforminput">
<input type = "Submit">
</div>
</form>
а там код сервера
public function CustomerDataStore(Request $req)
{
$validatdada = $req->validate([
'name'=> 'required',
'email'=> 'required|unique:email',
'phonenumber'=> 'required',
'address'=> 'required',
'zipcode'=> 'required',
'country'=> 'required',
'remarks'=> 'required'
]);
return view('CustomerEntry.successful');
}
я создал таблицу с именем «customerdata», но когда я пытаюсь сохранить данные через контроллер и модель («customerdata»), это дало мне ошибку и постоянно выдавало мне ошибку, даже если я удалил имя таблицы «customerdata» и ее модель, а также откатить миграцию.
кто-нибудь знает, почему я получаю сообщение об ошибке, даже если я не использую базу данных, просто отправляя данные?
да, это ошибка показывает = "[2023-03-15 12:28:29] local.ERROR: синтаксическая ошибка, неожиданный токен ":", ожидание"]" {"исключение":"[объект] (ParseError( код: 0): синтаксическая ошибка, неожиданный токен \":\", ожидается \"]\" в C:\\xampp\\htdocs\\CRM\\routes\\web.php:20)"
Это с 15 числа, а не с сегодняшнего дня
[2023-03-30 12:18:54] local.ERROR: SQLSTATE[42S02]: базовая таблица или представление не найдено: 1146 Таблица 'crm.email' не существует (соединение: mysql, SQL: выберите count() как совокупность из email
, где email
= [email protected]) {"исключение":"[объект] (Illuminate\\Database\\QueryException(код: 42S02): SQLSTATE[42S02]: базовая таблица или представление не найдено: 1146 Таблица 'crm.email' не существует (Соединение: mysql, SQL: выберите count() как агрегат из email
, где email
= [email protected]) в C:\\xampp\\htdocs\\CRM\\vendor\\ laravel\\framework\\src\\Illumminate\\Database\\Connection.php:760) [stacktrace]
Что ж, это не помогает, так как не дает полного журнала трассировки. Ищите промежуточное ПО или другой контроллер, который пытается найти электронную почту.
спасибо, я получил точную ошибку, и теперь все работает нормально.
когда проверка приходит на электронную почту, она ищет в БД таблицу электронной почты и не может ее найти.
что вы, вероятно, пытаетесь сделать, так это иметь уникальный адрес электронной почты, но вы должны указать laravel правильное имя таблицы для поиска.
Эс: 'email' => 'обязательно|уникальное:имя_таблицы',
это будет искать уникальный адрес электронной почты в таблице с именем tablename.
Спасибо, я этого не заметил. Теперь работает нормально
Ошибка возникает не из этого кода. Посмотрите в журналах в
storage/logs
, чтобы увидеть, есть ли дополнительная информация, но он пытается получить доступ к чему-то об электронных письмах.