我有一个搜索页面,将数据传递给渲染函数:
public function actionIndex() { $this->render( 'searchResults',array( 'dataProvider' => $dataProvider,'searchQuery' => $searchQuery,) ); }
问题是,我还需要将此数据从此处传递到侧边栏中显示的窗口小部件.窗口小部件当前显示在layout / main.php中,如下所示:
<?php $this->widget('searchSidebar',array( 'id' => 'searchSidebar',)); ?>
如何在不必重新再次查询的情况下从控制器传递数据到这个范围?
dataProvider已包含所有数据
$dataProvider->data $dataProvider->getData()
要将它放在主布局中,您可以在Controller中创建另一个变量
class Controller extends CController { public $data_exchange=''; ... }
使用$this-> data_exchange可以很容易地在代码中随处操作,类似于主布局中的breadcrumbs
$this->widget('searchSidebar',array( 'id' => 'searchSidebar','data' => $this->data_exchange /* where $this refer to any class which extends Controller */ ));
在您的视图代码中,将您的数据定义为:
$this->data_exchange = $dataProvider->data
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。