在布局中,我得到了一些价值:
$quote = Quotes::model()->findAll(array('order'=>'id DESC', 'limit'=>1));
它的工作正常,无论从视图中调用模型是不好的做法。 在同一文件夹中的另一个布局我不能做同样的事情。如果重要,这个布局显示在同一页面上。我直接回应模型,控制器不会渲染任何变量来查看。 有没有办法将此var发送到自定义布局或视图?
答案 0 :(得分:0)
您可以在控制器中创建一个返回所需值的方法,然后可以从视图中调用此方法。或者,如果您在视图中使用$ this-> render(),则只需将此变量转发到自定义视图:$ this-> render('quotes',$ quotes);
答案 1 :(得分:0)
我把这一行放在$quote
之前,它确实有效!
Yii::import('application.modules.quotes.models.*');
不确定,它是如何工作的,也许这是我的特例。
答案 2 :(得分:0)
我不认为将模型直接放在视图/布局中是最佳实践。出于某种原因,我在Controller.php中放了一个名为$ settings的公共变量,并把它放在protected / components /
中class Controller extends CController {
protected $settings = array();
public function init() {
$this->settings = Settings::model()->getAllSettings();
}
public function getSetting($key = '')
{
if (isset($this->settings[$key]))
{
return CHtml::decode($this->settings[$key]);
}
return NULL;
}
}
所以在我的布局(main.php)中,我会这样做。
<h1>Welcome to <?php echo $this->getSetting('brand_name');?>
真正的代码可能看起来比上面的更复杂,但我希望它对你有所帮助。