我有两张桌子 - 动物和动物类型。
animals_type中的列: id 和类型
动物专栏: id ,名称和 animals_type
我想渲染动物类型列表并在同一页面上存在动物。
对于渲染动物类型I,创建模型Animals_type,控制器Animals_TypeController
<?php
namespace frontend\controllers;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Animals_type;
class Animals_typeController extends Controller
{
public function actionIndex()
{
$query = Animals_type::find();
$pagination = new Pagination([
'defaultPageSize' => 10,
'totalCount' => $query->count(),
]);
$Animals_type = $query->orderBy('id')
->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('index', [
'animals_type' => $Animals_type,
'pagination' => $pagination,
]);
}
}
并查看index.php
<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<h1>Animals Type</h1>
<ul>
<?php foreach ($animals_types as $animals_type):?>
<li>
<?= Html::encode("{$animals_type->type} ({$animals_type->id})") ?>:
</li>
<?php endforeach; ?>
</ul>
<?= LinkPager::widget(['pagination' => $pagination]) ?>
如何查询每种类型的动物清单?
答案 0 :(得分:1)
创建关系 animals 之后,你可以这样使用它:
<?php foreach ($animals_types as $animals_type):?>
<li>
<?= Html::encode("{$animals_type->type} ({$animals_type->id})") ?>:
<?if($animals_type->animals):?>
<ul>
<?php foreach ($animals_type->animals as $animal):?>
<?= Html::encode("{$animal->name} ({$animal->id})") ?>:
<?php endforeach; ?>
</ul>
<?endif?>
</li>
<?php endforeach; ?>