2017-05-06 10:59:38 2158次浏览 5条回答 0 悬赏 10 金钱

如在 views/layouts文件夹下有个公共视图,要在哪对数据库进行查询,再将值传入公共视图,最后显示
本人菜鸟,请回答详细点

补充于 2017-05-06 17:31

已经解决,依然很感谢各位的回答,如有其他好的方法也请发表出来
我的方法如下,希望对其他朋友有帮助
控制器(根据需要继承此控制器):
class XinController extends Controller{ //新控制器
public function init(){ //重写初始化

 $view = Yii::$app->view;      
 $datas = Tableming::find()->all();       //查询表数据 Tableming为我的模型
 $view->params['datas']=$datas;

}
}
公共视图:
<? foreach ($this->params['datas'] as $data): ?> //遍历表数据
<? echo $data->zhi ?> //取字段值
<? endforeach; ?>

  • 回答于 2017-05-06 11:58 举报

    layout布局里面直接写sql查询出来,应该可以。

  • 回答于 2017-05-06 16:18 举报

    我觉得题主想表达的意思是,普通视图有数据模型和控制器用来管理数据,而layouts没有这些,应该怎样传入数据。
    你可以在layouts里直接读取数据库的数据,比如Profile::findOne($id),也可以从sisson或者内存里得到数据。
    或者

    NavBar::begin([
            'brandLabel' => '<image class="header-logo" src="/up/logo.png" />',
            'brandUrl' => Yii::$app->homeUrl,
            'options' => [
                'class' => 'navbar-inverse navbar-fixed-top navbar',
            ],
        ]);
    

    src=某个数据;

    layouts/main.php的格式也不是固定的,你可以把navbar小部件写进每个视图里,然后用控制器传递数据。(当然没多少人喜欢这么做)

  • 回答于 2017-05-06 16:45 举报

    跟其他页面一样,直接引入模型,查询数据

    <?php
    ……
    use backend\models\SiteInfo;
    
    AppAsset::register($this);
    ?>
    <?php $this->beginPage() ?>
    <?php
    /* 设置页面seo信息 */
    $site_info = SiteInfo::get_site_info();
    
        !isset($this->metaTags['keywords'])&&isset($site_info['site_keywords'])?$this->registerMetaTag(['name'=>"Keywords",'content'=>$site_info['site_keywords']],'keywords'):"" ;
      
    ?>
    ……
    
  • 回答于 2017-05-08 09:41 举报

    其实这里更建议放到 controller 上,而不是放到view上面,controller上的数据更具有可操作性,具体使用

    <?= $this->context->xxx; ?>

    $this->context 就是指向当前controller

  • 回答于 2017-05-09 11:52 举报

    我的是在frontend\components\AccessControl;
    里面 new 同级目录下的一个类。

    类中有一些方法。
    方法中查询出数组;
    Yii::$app->view->params['latest'] = $latest;
    然后页面直接用这个数组就可以了。
    在公共视图中不需要任何引入!

您需要登录后才可以回答。登录 | 立即注册
zzh97111
职场新人

zzh97111

注册时间:2017-04-26
最后登录:2018-11-20
在线时长:7小时49分
  • 粉丝0
  • 金钱5
  • 威望0
  • 积分75

热门问题