在我的自定义组件中,在网站视图中,我有一个国家/地区列表(查看:国家/地区)。单击某个国家/地区,将显示另一个视图(查看:人员),显示居住在该国家/地区的所有人员。
现在,在人们看来,我想显示国家的名字和旗帜。
所以我想在function getCountry()
中添加...site/models/persons.php
:
public function getCountry() {
$db = $this->getDBO();
$id = $this->state->get("filter.country");
$sql = "SELECT * FROM #__cnlp_persons_country WHERE id = $id";
$db->setQuery($sql);
$country = $db->loadResult();
// var_dump($country);
return $country;
}
然后,我添加到.../site/views/persons/view.html.php
:
class Cnlp_personsViewPersons extends JView
{
protected $items;
protected $state;
protected $params;
protected $country; // <--- I added this
...
public function display($tpl = null)
{
$app = JFactory::getApplication();
$this->state = $this->get('State');
$this->items = $this->get('Items');
$this->params = $app->getParams('com_cnlp_trainers');
$this->country = $this->get('Country'); // <--- I added this
(...)
结果:我认为我可以在---/site/views/persons/tmpl/default.php
之类的东西......
<h1><?php echo $this->country->name; ?></h1>
<img src="<?php echo $this->country->flag; ?>" />
...但我得到没有输出 ...... 我做错了什么?
答案 0 :(得分:0)
$db->loadResult();
用于加载单个值结果(例如,如果您只想选择国家/地区名称或类似内容),但在您的查询中,您选择的是整行,因此您应该使用其中一个:
$db->loadRow(); // returns an indexed array from a single record in the table
$db->loadAssoc(); // returns an associated array from a single record in the table
$db->loadObject(); // returns a PHP object from a single record in the table:
您可以阅读有关此here的更多信息(这是joomla 1.5文档,但2.5和3版本相同)