创建具有关系的表单 OctoberCMS
Creating Form With Relationship OctoberCMS
假设我在模型、用户和地址之间有一个简单的一对一关系。我正在尝试扩展用户(使用前端用户 Rainlab 插件)以建立这种关系。我已经成功地使用行为将地址附加到 UserModel:
$model->hasOne['address'] = ['First\Second\Models\Address'];
我遇到的问题是在将一个新选项卡放在一起以在后端为用户添加地址时。我有一个指定了所有相关字段的新选项卡:
street:
label: "Address"
tab: "Profile"
address_2:
label: "Address 2"
tab: "Profile"
company_name:
label: "Company"
tab: "Profile"
span: left
zip:
label: "Zip"
tab: "Profile"
span: right
city:
label: "City"
tab: "Profile"
span: left
state:
label: "State"
placeholder: "Select"
type: dropdown
tab: "Profile"
span: right
我 运行 不过这里有几个问题。首先,对于其中的每一个,我想引用一个地址模型而不是用户模型(例如,我希望 getStateOptions 从地址模型而不是用户中提取)。其次,在保存时,它将(逻辑上)尝试插入用户而不是地址。
我想我可以为每个 属性 使用设置器,但这有点混乱,因为它将一个模型的状态直接绑定到另一个模型。 YAML 规范中有没有告诉表单将这些值附加到相关模型?
在您的 fields.yaml 文件中,您使用关系名称来执行您描述的内容。
address[street]:
label: "Address"
tab: "Profile"
address[address_2]:
label: "Address 2"
tab: "Profile"
...
就是这样!
假设我在模型、用户和地址之间有一个简单的一对一关系。我正在尝试扩展用户(使用前端用户 Rainlab 插件)以建立这种关系。我已经成功地使用行为将地址附加到 UserModel:
$model->hasOne['address'] = ['First\Second\Models\Address'];
我遇到的问题是在将一个新选项卡放在一起以在后端为用户添加地址时。我有一个指定了所有相关字段的新选项卡:
street:
label: "Address"
tab: "Profile"
address_2:
label: "Address 2"
tab: "Profile"
company_name:
label: "Company"
tab: "Profile"
span: left
zip:
label: "Zip"
tab: "Profile"
span: right
city:
label: "City"
tab: "Profile"
span: left
state:
label: "State"
placeholder: "Select"
type: dropdown
tab: "Profile"
span: right
我 运行 不过这里有几个问题。首先,对于其中的每一个,我想引用一个地址模型而不是用户模型(例如,我希望 getStateOptions 从地址模型而不是用户中提取)。其次,在保存时,它将(逻辑上)尝试插入用户而不是地址。
我想我可以为每个 属性 使用设置器,但这有点混乱,因为它将一个模型的状态直接绑定到另一个模型。 YAML 规范中有没有告诉表单将这些值附加到相关模型?
在您的 fields.yaml 文件中,您使用关系名称来执行您描述的内容。
address[street]:
label: "Address"
tab: "Profile"
address[address_2]:
label: "Address 2"
tab: "Profile"
...
就是这样!