SQLSTATE[HY000]: Общая ошибка: поле 1364 «изображение» не имеет значения по умолчанию

#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 по умолчанию.

Смотрите изображение ниже, чтобы помочь.

введите описание изображения здесь