我尝试在我的主页上创建搜索功能,用户可以按国家/地区限制搜索结果。
这一切都适用于我的帖子/索引控制器,通过查找('列表)自动检索国家/地区列表。
但是,在主页上,国家/地区下拉列表仍为空。下面是一些代码: 我尝试使用requestAction检索下拉列表(请忽略'requestAction从评论中缓慢,谢谢)
homesearch.ctp元素:
<?php $this->requestAction('countries/getCountries');?>
<?php
echo $this->Form->create('Post', array(
'url' => array_merge(array('controller' => 'posts','action' => 'index'), $this->params['pass'])
));
echo $this->Form->input('title', array('div' => false, 'empty' => true, 'label' => false));
echo $this->Form->input('country_id');
echo $this->Form->submit(__('Search', true), array('div' => false));
echo $this->Form->end();
&GT?;
国家控制器中的getCountries函数:
function getCountries(){
$countries = $this->Country->find('list');
$this->set(compact('countries'));
}
在深入探讨替代方案(在PagesController等中的loadmodule('Country'))之前,我认为我做错了什么,没有数据从requestAction函数流回来,就像调试教我一样。
你们怎么洗这头牛?谢谢!
答案 0 :(得分:0)
function getCountries(){ $countries = $this->Country->find('list'); if (!empty($this->params['requested'])) { return $countries; } else { $this->set(compact('countries')); } }
并在元素中:<?php $countries = $this->requestAction('countries/getCountries');?>
答案 1 :(得分:0)
...(请在评论中省略'requestAction缓慢,谢谢)
为了提高性能,请替换:
<?php $this->requestAction('countries/getCountries');?>
使用:
<?php $this->viewVars['countries'] = ClassRegistry::init('Country')->find('list'); ?>
此方法不会生成第二个请求。