在OctoberCMS中,您可以很容易地根据另一个下拉列表创建一个下拉列表。但是,我找不到使下拉列表依赖于tagList表单字段的解决方案。
例如,我在后端表单上具有以下字段:
-Subject
-Category
-Tags
我在数据库中有以下表格:
-subjects(subject_id, subject, category_id)
-categories(category_id, category)
-tags(tag_id, tag)
-categories_tags(category_id, tag_id) pivot table
-subject_tags(subject_id, tag_id) pivot table
我想基于从同一表格的下拉列表中选择的类别填充tagList标记选择器。就像我选择摄影类别并获得摄影分配的标签一样。
有可能在十月这样做吗?
我应该使用什么模型和关系来实现这一目标?
答案 0 :(得分:0)
当然可以。我使用的方法如下。
将dependsOn添加到依赖于类别中的字段 field.yaml文件(类似于下拉菜单)。我的fields.yaml文件 屏幕截图已附在这里。
然后按正常使用方式创建getYOUR_FIELDOptions()方法 标签列表。
使用以下格式创建查询,并将其作为上述方法的返回值返回
Service :: whereIn('category',explode(',',$ this-> categories)) -> orderBy('id') -> lists('title','id');
服务-您的模型
$ this->类别-取决于字段名称
lists('title','id')-将应显示在 将taglist作为第一个参数,然后将下一个字段用作 钥匙。这种方法对我来说非常有效。
完整方法:
import { Selector } from 'testcafe';
fixture `New Fixture`
.page `google.com`;
test('New Test', async t => {
await t
.click(Selector('#tsf').find('[name="q"]'))
.typeText(Selector('#tsf').find('[name="q"]'), 'testcafe')
.pressKey('enter');
await t.expect(Selector('.LC20lb').count).eql(10);
function fn (title) {
return Selector('.LC20lb').filter((node, idx) => {
return node.textContent.includes(title);
}, { title }); // dependencies parameter
}
await t.expect(fn('TestCafe').count).gt(1);
});