в настоящее время работает с 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, поскольку это может быть частью причины вашей ошибки.)
Вы использовали неправильный атрибут имени в своем элементе ввода. Вы дважды проверяете наличие 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
Вирджиния, извините, я не могу проголосовать за, потому что у меня еще нет 15 репутации
Не беспокойтесь, просто принять ответ - тоже хорошо, потому что это поможет другим программистам решить ту же проблему :) Спасибо, что приняли!
Ваше имя входного атрибута неверно
<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
// ...
});
}
Не могли бы вы показать ту часть вашего PHP, где вы обрабатываете эту форму? Это могло быть частью причины.