laravel - 如何直接从请求中保存继承的模型属性?
问题描述
我有一个基本模型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
)的表。
解决方案
推荐阅读
- python - 在终端中使用用户定义的超参数脚本和函数脚本实现网格搜索算法
- kubernetes - “current-context”是 kubeconfig 文件中的强制键吗?
- python - 在 pytest html 中执行 Pytest 重复插件结果为“未捕获日志输出”
- python - 将日期添加到 pd.to_datetime
- docker - 如何在 Kubernetes 清单 deployment.yml 文件中动态或使用变量定义图像名称?
- jsf - 折叠时在 Primefaces 字段集中显示一些内容
- javascript - 是否有用于放大多个图表(highcharts)的通用时间范围小部件
- laravel - Alpine JS Alpine 错误:“TypeError:无法读取未定义的属性 '$wire'”
- r - 具有多个 (x,y) 对的数据帧的高格式
- java - 如何使用 QueryDsl 正确创建 JPAQueryFactory