PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – YII:从控制器传递数据到小部件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个搜索页面,将数据传递给渲染函数
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

大佬总结

以上是大佬教程为你收集整理的php – YII:从控制器传递数据到小部件?全部内容,希望文章能够帮你解决php – YII:从控制器传递数据到小部件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。