@romkaby

Yii2 / hasOne или что я делаю не так?

Собственно, что не так?

Модель:
namespace common\models;

use Yii;

class Content extends \yii\db\ActiveRecord
{
...
    public function getAuthor() {
        return $this->hasOne(User::className(), ['id' => 'author_id']);
    }
...
}


Контроллер:
namespace backend\controllers;

use Yii;
use common\models\Content;

class ContentController extends Controller
{
...
    public function actionIndex()
    {
        $data = Content::find()->getAuthor()->all();

        return $this->render('index', [
            'data' => $data,
        ]);
    }
...
}


Получаю ошибку:
Calling unknown method: yii\db\ActiveQuery::getAuthor()


Пните в нужную сторону :)
  • Вопрос задан
  • 16392 просмотра
Решения вопроса 1
MegaMufa
@MegaMufa
$data = Content::find()->getAuthor()->all();
Вы не выбрали нужную запись.

Если вам нужен автор, то надо так:
$data = Content::find()->one()
    ->getAuthor()->one();


Если вам нужны все записи вместе с авторами, то так:
$data = Content::find()
    ->with('author')
    ->all();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы