标签:laravel-5-3 php laravel laravel-5 mysql
我正在使用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属性是MySQL上的TEXT类型列,所以如果我在创建模型时没有向它传递任何值,它应该是一个空字符串.相反,我一直得到SQLSTATE [HY000]:一般错误:1364字段’url’没有默认值错误.
这是我尝试创建Post模型:
Page::create([
'title' => $root_menu['title'],
'slug' => $root_menu['slug'],
'language' => $this->language,
'wireframe' => key(config('cms.wireframe')),
'order' => 0
]);
这是与Laravel 5.3相关的问题还是我遗漏了什么?在此先感谢您的帮助.
解决方法:
@Nicklas解释了错误的原因.
然而,现在发生这种情况的原因是Laravel 5.3默认使用MySQL的严格模式.
如果您想恢复以前的行为,请更新您的config / database.php文件并设置’strict’=>你的联系是假的.
标签:laravel-5-3,php,laravel,laravel-5,mysql 来源: https://codeday.me/bug/20191005/1857342.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。