我有一个基本模型BaseNote
,并且有两个继承自它的模型:ReferenceNote
和TaskNote
。 TaskNote
有一个附加属性start_date
。 ReferenceNote
具有text
属性。
根据要求,我有type
和创建新笔记的代码:
$noteType = self::getNoteType($request->get('type'));
$note = $noteType::create($request->all());
此代码仅保存BaseNote
个属性。
是否可以在不使用两个工厂方法和手动分配属性的情况下使此代码工作? Laravel可以从请求中获取属性并自动将其分配给模型吗?
更新:
static function getNoteType($type)
{
switch ($type) {
case self::REFERENCE_NOTE:
return 'App\models\notes\ReferenceNote';
break;
case self::TASK_NOTE:
return 'App\models\notes\TaskNote';
break;
default:
return 'App\models\notes\ReferenceNote';
}
}
在ReferenceNote
和TaskNote
模型中,我有$guarded = []
。
我有一个表notes
,其中包含所有列(以及ReferenceNote
和TaskNote
)。