Я использую Laravel и Eloquent в течение двух лет, и сегодня я решил установить новый Laravel 5.3 и попробовать что-то с ним.
Я использовал мою прежнюю схему базы данных и создал свои модели, определял заполняемые столбцы. Вот как выглядит моя модель Page
:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Page extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'language',
'title',
'slug',
'url',
'description',
'tags',
'wireframe',
'order',
'is_active'
];
public function menus()
{
return $this->belongsToMany(Menu::class);
}
}
url
Атрибут - это столбец TEXT
-type в MySQL, поэтому, если я не передаю ему никакого значения при создании модели, это должна быть пустая строка. Вместо этого я продолжаю получать ошибку SQLSTATE[HY000]: General error: 1364 Field 'url' doesn't have a default value
.
Вот моя попытка создать модель Post:
Page::create([
'title' => $root_menu['title'],
'slug' => $root_menu['slug'],
'language' => $this->language,
'wireframe' => key(config('cms.wireframe')),
'order' => 0
]);
Является ли это проблемой, связанной с Laravel 5.3, или я что-то упускаю? Заранее благодарим за помощь.