ale*_*nst 1 php model-view-controller yii2
我正在开发一个具有标准标题/左列布局的Yii2项目.左列包含应从数据库中提取的类别.
我应该在哪里放置获取类别的查询?在布局中,代码将反对MVC应该如何完成,对吧?
定义你不应该在布局中放置任何SQL代码,它违反了MVC模式,视图目的是显示而不是这种逻辑.
因为它是常见元素,所以小部件似乎是您的案例的好选择.您可以将SQL放入run()方法中,例如:
<?php
namespace frontend\widgets;
use frontend\models\tests\Test;
use yii\base\Widget;
class NewTests extends Widget
{
/**
* @inheritdoc
*/
public function run()
{
$tests = Test::find()
->orderBy(['created_at' => SORT_DESC])
->limit(10)
->all();
return $this->render('new-tests', ['tests' => $tests]);
}
}
Run Code Online (Sandbox Code Playgroud)
根据您的需要填充小部件视图,然后您可以在布局中显示它,如下所示:
use frontend\widgets\NewTests;
...
<?= NewTests::widget() ?>
Run Code Online (Sandbox Code Playgroud)
此外,您可以将窗口小部件配置为从中扩展的任何其他对象yii\base\Object.
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |