首页 > 解决方案 > 如何直接从请求中保存继承的模型属性?

问题描述

我有一个基本模型BaseNote和两个继承自它:ReferenceNoteTaskNote. TaskNote有一个附加属性start_dateReferenceNotetext属性。应要求,我有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';
        }
    }

ReferenceNoteTaskNote模型我有$guarded = []

我有一张notes包含所有列(和ReferenceNoteTaskNote)的表。

标签: laraveleloquent

解决方案


推荐阅读