Ошибка ограничения целостности SQL в laravel 5.6

в настоящее время работает с laravel 5.6 и испытывает проблемы с обновлением созданной мной формы.

полная ошибка:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null (SQL: update `companies` set `name` = , `description` = this is a SE company., `updated_at` = 2018-12-16 10:05:55 where `id` = 1)

Файл edit.blade.php следует:

 <form method = "post" action = "{{route('companies.update',[$company->id]) }}">
        {{ csrf_field() }}

        <input type = "hidden" name = "_method" value = "put">

        <div class = "form-group">
            <label for = "company-name">Name<span class = "required">*</span></label>
            <input placeholder = "Enter name"
                   id = "company-name"
                   required
                   name = "description"
                   spellcheck = "false"
                   class = "form-control"
                   value = "{{ $company->name }}"
            />
        </div>

        <div class = "form-group">
            <label for = "company-content">Description</label>
            <textarea placeholder = "Enter description"
                        style = "resize:vertical"
                        name = "description" 
                        id = "company-content" 
                        rows = "5" cols = "5"
                        spellcheck = "false"
                        class = "form-control autosize-target text-left">
                        {{ $company->description}}
                    </textarea>
        </div>
        <div class = "form-group">
            <input type = "submit" class = "btn btn-primary"
                    value = "Submit"/>
        </div>

      </form>

это файл миграции:

 public function up()
{
    Schema::create('companies', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->longText('description')->nullable();
        $table->integer('user_id')->unsigned();
        $table->timestamps();
    });
}

Будем очень признательны за любые указания относительно того, что я делаю неправильно.

Не могли бы вы показать ту часть вашего PHP, где вы обрабатываете эту форму? Это могло быть частью причины.

Virginia 16.12.2018 11:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
48
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

(Обратите внимание, что я обновлю свой ответ, как только будет добавлен ваш фрагмент кода PHP, поскольку это может быть частью причины вашей ошибки.)

Вы использовали неправильный атрибут имени в своем элементе ввода. Вы дважды проверяете наличие description.

Измените это:

<input placeholder = "Enter name"
                   id = "company-name"
                   required
                   name = "description"
                   spellcheck = "false"
                   class = "form-control"
                   value = "{{ $company->name }}"
            />

К этому:

<input placeholder = "Enter name"
                   id = "company-name"
                   required
                   name = "name"
                   spellcheck = "false"
                   class = "form-control"
                   value = "{{ $company->name }}"
            />

Пожалуйста! Не могли бы вы принять и проголосовать за мой ответ в таком случае? :) Вот так работает Stack Overflow: stackoverflow.com/help/someone-answers

Virginia 16.12.2018 11:40

Вирджиния, извините, я не могу проголосовать за, потому что у меня еще нет 15 репутации

ch-ru 16.12.2018 12:09

Не беспокойтесь, просто принять ответ - тоже хорошо, потому что это поможет другим программистам решить ту же проблему :) Спасибо, что приняли!

Virginia 16.12.2018 13:42

Ваше имя входного атрибута неверно

<input placeholder = "Enter name"
               id = "company-name"
               required
               name = "description" <!-- <<-- This should be "name" not "description" -->
               spellcheck = "false"
               class = "form-control"
               value = "{{ $company->name }}"
/>

И если по какой-то причине вы хотите, чтобы имя допускало значение NULL

public function up()
{
    Schema::create('companies', function (Blueprint $table) {
        // ...   
        $table->string('name')->nullable(); // <<-- this is modified
        // ...
    });
}

Другие вопросы по теме