如何在公共布局里显示数据库的数据? [ 2.0 版本 ]
如在 views/layouts文件夹下有个公共视图,要在哪对数据库进行查询,再将值传入公共视图,最后显示
本人菜鸟,请回答详细点
zzh97111 补充于 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; ?>
共 5 个回答
-
我觉得题主想表达的意思是,普通视图有数据模型和控制器用来管理数据,而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小部件写进每个视图里,然后用控制器传递数据。(当然没多少人喜欢这么做)
-
跟其他页面一样,直接引入模型,查询数据
<?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'):"" ; ?> ……
zzh97111
注册时间:2017-04-26
最后登录:2018-11-20
在线时长:7小时49分
最后登录:2018-11-20
在线时长:7小时49分
- 粉丝0
- 金钱5
- 威望0
- 积分75