我收到以下错误。
SQLSTATE[HY000]: General error: 1364 Field 'code' doesn't have a default value (SQL: insert into
coupons
(updated_at
,created_at
) values (2019-12-23 14:06:02, 2019-12-23 14:06:02))
我做了一些调试,发现它来自以下代码块,但无法说出原因。
if ($customer && is_null($customer->referral_code)) {
$coupon = new Coupon;
$coupon->generateReferralCoupon($customer);
$coupon->save();
$customer->referral_code = $coupon->code;
$customer->save();
}
添加 referral_code
的迁移如下。
class AddReferralInfoToShopUsersTable extends Migration
{
public function up()
{
Schema::table('shop_users', function (Blueprint $table) {
$table->text('referral_code')->nullable();
$table->integer('referral_uses')->nullable();
$table->integer('referral_revenue')->nullable();
$table->index(['referral_code']);
});
}
}
最佳答案
查看错误代码,您似乎错过了对 code
属性的分配,或者您尚未将 code
放入 Coupon
模型中的可填充数组中.
很可能是这样:
$coupon->generateReferralCoupon($customer);
你应该使用:
$coupon->code = $coupon->generateReferralCoupon($customer);
关于sql - Laravel:使用代码块在客户对象上设置字段时出现 SQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460825/