Laravel:创建可以为空的 morphs() 关系
Posted
技术标签:
【中文标题】Laravel:创建可以为空的 morphs() 关系【英文标题】:Laravel: Create morphs() relationship nullable 【发布时间】:2020-06-08 03:32:03 【问题描述】:我想创建一个一对一的多态关系允许空关系。
例子:
Schema::create('ps_assistances', function (Blueprint $table)
$table->bigIncrements('id');
$table->string('assistance_number', 50)->nullable();
$table->morphs('assitanceable')->nullable();
);
但是这个例子在将 "->nullable()" 赋值给 morph 列时返回 null。
我尝试手动创建 _type 和 _id 并且效果很好。
手动变形列示例:
Schema::create('ps_assistances', function (Blueprint $table)
$table->bigIncrements('id');
$table->string('assistance_number', 50)->nullable();
$table->string('assitanceable_type')->nullable();
$table->unsignedBigInteger('assitanceable_id')->nullable();
);
我想知道是否存在更好的方法来实现可空的一对一多态关系。
【问题讨论】:
【参考方案1】:nullableMorphs
应该为你处理这个问题
例如:
Schema::create('ps_assistances', function (Blueprint $table)
$table->bigIncrements('id');
$table->string('assistance_number', 50)->nullable();
$table->nullableMorphs('assitanceable');
);
【讨论】:
以上是关于Laravel:创建可以为空的 morphs() 关系的主要内容,如果未能解决你的问题,请参考以下文章