<?php
namespace api\modules\v1\controllers;
use api\filters\Auth;
use common\models\HistoryRating;
use common\models\user\Person;
use common\models\user\User;
use Yii;
use yii\data\ActiveDataProvider;
use yii\rest\Controller;
use yii\web\NotFoundHttpException;
use yii\db\ActiveQuery;
class UserController extends Controller
{
public function actionWall($login){
$user = Yii::$app->user;
$user = User::find()->where(['username' => $login])->with(['user', 'person'])->one();
if ($user) {
return $user;
}
throw new NotFoundHttpException(Yii::t('app', 'The requested user does not exist.'));
}
}public function fields()
{
return ['id', 'email', 'username', 'rating'];
}
{
return $this->hasOne(User::class, ['id' => 'user_id'])->inverseOf('person');
}public function getPerson()
{
return $this->hasOne(Person::class, ['user_id' => 'id'])->inverseOf('user');
}
У меня вопрос не про связи, а про вывод данных
$user = Yii::$app->user;
$user = User::find()->where(['username' => $login])->with(['user', 'person'])->one();where(['username' => $login])return $user;?{
return $this->hasOne(User::class, ['id' => 'user_id'])->inverseOf('person');
}public function getUser()
{
return $this->hasOne(User::class, ['id' => 'user_id'])->inverseOf('person');
}->inverseOf('person');? Уберите.
public function getUser()
{
return $this->hasOne(User::class, ['id' => 'user_id']);
}public function getPerson()
{
return $this->hasOne(Person::class, ['user_id' => 'id']);
}public function actionWall($login){
if (
($user = User::find()
->where('username=:username',[':username' => $login])
->with(['person'])
->one()) == null
) {
throw new NotFoundHttpException(Yii::t('app', 'The requested user does not exist.'));
}
return $user;
}echo $user->person->rating;