#php #html #mysql #laravel
Вопрос:
Я решил не использовать изображение на странице меню «Создать», но затем я получил эту ошибку «SQLSTATE[HY000]: Общая ошибка: 1364 Поле «изображение» не имеет значения по умолчанию».
Это контролер меню:
public function store(Request $request, Menu $menu)
{
$data = array();
$data['name'] = $request->name;
$data['slug'] = $request->slug;
$data['price'] = $request->price;
$data['status'] = $request->status;
$menu = DB::table('menus')->insert($data);
return redirect()->route('admin.menu.index');
}
и в add.blade.php:
<form action="{{ route('admin.menu.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group row">
<label for="staticEmail" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" required value="{{ old('name') }}">
</div>
</div>
<div class="form-group row">
<label for="staticprice" class="col-sm-2 col-form-label">Price</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="price" id="price" required value="{{ old('price') }}">
</div>
</div>
<div class="form-group row">
<label for="staticprice" class="col-sm-2 col-form-label">Status</label>
<div class="col-sm-10">
<input type="radio" name="status" value="1" /> Active
<input type="radio" name="status" value="0" /> Not Active
</div>
</div>
<input id="slug" name="slug" type="hidden" value="Menu-{{ rand(100,999)}}" />
<button type="submit" class="btn btn-secondary" style="margin-top: 20px; width: 100%">Submit</button>
</form>
Я не знаю, где я сделал что-то не так.
Комментарии:
1. потому что в вашей таблице
image
поле не может быть обнулено2. Ах да, я этого не видел. Спасибо! @Эспрессо
Ответ №1:
На самом деле эта ошибка возникает из-за того, что в вашей таблице именованных меню столбец с именем image по умолчанию не имеет значения NULL.
Либо вам нужно добавить в него какое-то значение (может быть пустым), либо вам нужно обновить его структуру и установить значение NULL по умолчанию.
Смотрите изображение ниже, чтобы помочь.