版本:laravel 5.7當(dāng)使用模型修改器的$appends屬性,新增元素時(shí),使用faker生成假數(shù)據(jù)時(shí),報(bào)錯(cuò)誤:Unknown column 'sex_str'模型相關(guān)代碼:protected $appends = ['sex_str'];public static $sexAttr = ['未知', '男', '女'];public function getSexStrAttribute(){ return array_key_exists($this->sex, self::$sexAttr) ? self::$sexAttr[$this->sex] : '';
}faker相關(guān)代碼:$factory->define(\App\Models\User::class, function (Faker $faker) { return [ 'sex' => random_int(1, 2),
];
});屏蔽$appends屬性就正常了,怎么解決模型修改器影響生成假數(shù)據(jù)的問(wèn)題?補(bǔ)充:模型修改器的用途是:數(shù)據(jù)庫(kù)存的sex是int類型,取出時(shí)增加sex_str,轉(zhuǎn)換為字符串。生成假數(shù)據(jù)時(shí),faker里加了sex生成的。
1 回答

桃花長(zhǎng)相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
找到原因了,seeder里寫法問(wèn)題:
????????$user?=?factory(\App\Models\User::class)->times(1000)->make(); ????????DB::table('users')->insert($user->toArray());
我用的insert
,應(yīng)該用create
但是用create會(huì)生成1000條sql,insert只會(huì)生成一條sql,
因?yàn)閒actory里嵌套了一些關(guān)聯(lián)查詢,這樣生成數(shù)據(jù)就很慢。
先改成create了,不知道還有沒(méi)有其它方法?
- 1 回答
- 0 關(guān)注
- 532 瀏覽
添加回答
舉報(bào)
0/150
提交
取消