如何解决十月 CMS - 在后端表单中使用嵌套的关系管理器
我一直在关注 Samuel Georges 关于此事的教程:https://octobercms.com/support/article/ob-21。但是,在我的用例中,我有这些模型:
- 基础章节模型 (
Acme\Formist1\Models\Chapter
) - 属于章节 (
Acme\Formist1\Models\Quiz
) 的测验 - 属于测验 (
Acme\Formist1\Models\Question
) 的问题 - 和属于问题 (
Acme\Formist2\Models\Answer
) 的答案
我需要更深一层,所以我稍微修改了 onCreateItem()
方法:
public function onCreateRecord()
{
$recordtype = post('record_type');
$data = $recordtype == 'question'
? $this->questionFormWidget->getSaveData()
: $this->answerFormWidget->getSaveData();
$model = $recordtype == 'question'
? new Question
: new Answer;
$model->fill($data);
$model->save();
$parent = $this->getParentModel($recordtype);
if($recordtype == 'question') {
$parent->questions()->add($model,$this->questionFormWidget->getSessionKey());
}
else{
$parent->answers()->add($model,$this->answerFormWidget->getSessionKey());
}
return $this->refreshRecordList($recordtype);
}
基本上,我为 Answers 创建了另一个表单,但是该处理程序发生了一些奇怪的事情:推迟 Question 模型的关系绑定没有问题,但是每当我尝试验证 Answer 表单时,我都会收到一条错误消息我认为 foreign_key 没有默认值,因此暗示 Answer 模型没有任何延迟绑定。
另外,如果您对此功能有更好的建议,请随时提交,我知道这个看起来不太漂亮。
提前感谢您的时间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。