OctoberCMS,如何定义与儿童模型的关系?

OctoberCMS, how to define relationship with children model?

我需要在模板中渲染子模型,我的父模型 "Form" 有数据库字段 "field_id",其中 field_id 等于 ID 子模型 "Field"。如何访问子模型?我尝试添加与 Field 模型的关系:

public $hasOne = [
        'field' => ['\Webfather\Services\Models\Variation', 'key' => 'field_id']
    ];

并尝试在模板中显示:

{{form.field.name}}

但是 form.field 是空的

你的关系链接是错误的。

你需要做的是,你需要在你的子模型中定义form_id(Variation)

您需要在此处插入 form_id => 'parent model (Form) id'

然后在Form模型里面

public $hasOne = [
    'field' => ['\Webfather\Services\Models\Variation', 'key' => 'form_id']
];

所以现在它将搜索父模型 Form

的子模型 (Variation),其中 form_id = id

然后就可以获取子记录了

或者要使其适用于当前场景,您需要将 Form 模型作为子模型。 (更少的代码更改)

然后在Form模型里面

public $belongsTo = [
    'field' => ['\Webfather\Services\Models\Variation', 'key' => 'field_id']
];

现在您可以使用

{{form.field.name}}