Вопрос решен. Может кому поможет это.В models\Category добавилpublic function getClub()
{
return $this->hasMany(Club::className(), ['category_id' => 'id']);
}
В CategoryController добавилpublic function actionView($id)
{
$id = Yii::$app->request->get('id');
$news = News::find()->where(['category_id' => $id])->all();
$clubs = Club::find()->where(['category_id' => $id])->all();
return $this->render('view', compact('news', 'clubs'));
}
category/view: вывод новостей<div class="content">
<h2>Новости спорта</h2>
<?php if(!empty($news)): ?>
<?php foreach ($news as $new): ?>
<h1><?= $new->name ?></h1>
<p><?= $new->content ?></p>
<?php endforeach; ?>
<?php else: ?>
<?php if(!empty($clubs)): ?>
<?php foreach ($clubs as $club): ?>
<h1><?= $club->name ?></h1>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>
Спасибо всем, кто помогал!
--------------------------------------------------------------
--------------------------------------------------------------
Добрый день!
Вопрос такой, нужно связать 2 таблицы
"news" и
"club" с таблицей
"category".
---------------------------------------------------------------
---------------------------------------------------------------
Нужно связать по столбцам в
"news" и
"club" столбец
"category_id" должен равняться столбцу
"id" в таблице
"category".
Нужно, чтобы нажимая на
РФПЛ, выводились команды из таблицы
"club". С новостями все получилось, а вот дальше, что то не могу понять, как сделать подключение к еще одной таблице. Подскажите пожалуйста. В Yii2 новичок,
буду благодарен за разжеванный ответ. Документацию пожалуйста не предлагать Вот все подключения и вывод:CategoryController:<?php
/**
* Created by PhpStorm.
* User: Computer
* Date: 06.12.2017
* Time: 20:34
*/
namespace app\controllers;
use app\models\Category;
use app\models\News;
use app\models\Club;
use Yii;
class CategoryController extends AppController
{
public function actionIndex()
{
$news = News::find()->all();
return $this->render('index', compact('news'));
}
public function actionView($id)
{
$id = Yii::$app->request->get('id');
$news = News::find()->where(['category_id' => $id])->all();
return $this->render('view', compact('news'));
}
}
model\Category:<?php
/**
* Created by PhpStorm.
* User: Computer
* Date: 06.12.2017
* Time: 12:35
*/
namespace app\models;
use yii\db\ActiveRecord;
class Category extends ActiveRecord
{
public static function tableName()
{
return 'category';
}
public function getNews()
{
return $this->hasMany(News::className(), ['category_id' => 'id']);
}
}
model\Club:<?php
/**
* Created by PhpStorm.
* User: Computer
* Date: 06.12.2017
* Time: 12:37
*/
namespace app\models;
use yii\db\ActiveRecord;
class club extends ActiveRecord
{
public static function tableName()
{
return 'club';
}
public function getCategory()
{
return $this->hasOne(Category::className(), ['id' => 'category_id']);
}
}
model\News:<?php
/**
* Created by PhpStorm.
* User: Computer
* Date: 06.12.2017
* Time: 20:26
*/
namespace app\models;
use yii\db\ActiveRecord;
class News extends ActiveRecord
{
public static function tableName()
{
return 'news';
}
public function getCategory()
{
return $this->hasOne(Category::className(), ['id' => 'category_id']);
}
}
category/view: вывод новостей<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
$this->title = 'My Yii Application';
?>
<?php
/* @var $this yii\web\View */
$this->title = 'My Yii Application';
?>
<div class="wrap">
<div class="leftmenu">
<ul class="catalog category-products">
<?= \app\components\MenuWidget::widget(['tpl' => 'menu']); ?>
</ul>
</div>
<div class="content">
<h2>Новости спорта</h2>
<?php if(!empty($news)): ?>
<?php foreach ($news as $new): ?>
<h1><?= $new->name ?></h1>
<p><?= $new->content ?></p>
<?php endforeach; ?>
<?php else: ?>
<h2>Новостей нет</h2>
<?php endif; ?>
</div>
</div>
формирование левого меню<li>
<a href="<?= \yii\helpers\Url::to(['category/view',
'id' => $category['id']]); ?>">
<?= $category['name'] ?>
<?php if(isset($category['childs'])): ?>
<span class="badge pull-right"><i class="fa fa-plus"></i></span>
<?php endif; ?>
</a>
<?php if(isset($category['childs'])): ?>
<ul>
<?= $this->getMenuHtml($category['childs'])?>
</ul>
<?php endif; ?>
</li>