我正在使用带有ProcessWire (v2.1.6)的Smarty 模板模块,我有两个模板和. 该模板有一个字段(类型为多页),引用教师可以教授的科目。在 Smarty 中访问它们很简单,如模板中所示:TeacherSubjectTeacherTeacher
{foreach from=$page->subjects item=subject}
<li><a href="{$subject->url}">{$subject->title}</a></li>
{/foreach}
但是,该网站的用户还应该能够查看所有教师Subject:
{foreach from=$pages->find('template=Teacher,subjects.title={$page->title}') item=teacher}
<li><a href="{$teacher->url}">{$teacher->title}</a></li>
{/foreach}
这使用子字段选择器 subjects.title并尝试动态扩展操作数 ( {$page->title})。
首先我认为动态扩展是问题,但是如果我用常量字符串替换它,子字段选择器也不起作用(foreach 不会生成任何东西):
{foreach from=$pages->find('template=Teacher,subjects.title="History"') item=teacher}
有趣的是,非常相似的计数选择器确实有效:
{foreach from=$pages->find('template=Teacher,subjects.count > 1') item=teacher}