Ошибка ограничения целостности SQL в laravel 5.6 - PullRequest
0 голосов
/ 16 декабря 2018

в настоящее время работает с 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();
    });
}

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

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

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

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

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

public function up()
{
    Schema::create('companies', function (Blueprint $table) {
        // ...   
        $table->string('name')->nullable(); // <<-- this is modified
        // ...
    });
}
0 голосов
/ 16 декабря 2018

(обратите внимание, что я обновлю свой ответ, как только ваш фрагмент кода 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 }}"
            />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...