加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – YII:从控制器传递数据到小部件?

发布时间:2020-05-25 09:07:05 所属栏目:PHP 来源:互联网
导读:我有一个搜索页面,将数据传递给渲染函数: public function actionIndex() { $this-render( searchResults, array( dataProvider = $dataProvider, searchQuery = $searchQuery, ) );} 问题是,我还

我有一个搜索页面,将数据传递给渲染函数:

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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读