Laravel:使用代码块在客户对象上设置字段时出现 SQL 错误



我收到以下错误。

SQLSTATE[HY000]:一般错误:1364 字段"代码"没有 默认值 (SQL: 插入coupons(updated_atcreated_at( 数值 (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);

最新更新