Как правильно сделать жадную загрузку в данном случае?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Avarskiy
Сообщения: 27
Зарегистрирован: 2014.12.12, 13:01

Как правильно сделать жадную загрузку в данном случае?

Сообщение Avarskiy »

Есть метод проверяющий есть данная запись в базе данных или нет:

Код: Выделить всё

public function getIsMahram()
    {
        return ClientRelation::find()
            ->where(["season_id" => \Yii::$app->params["workSeason"], "client_id" => $this->id, "mahram" => true]);
    }
Т.к. она многих циклах используется, решил оформить его как связь, чтобы использовать жадную загрузку:

Код: Выделить всё

public function getIsMahram()
    {
        return $this->hasOne(ClientRelation::className(), ['client_id' => 'id'])
            ->where(["season_id" => \Yii::$app->params["workSeason"], "mahram" => true]);
    }
Но в таком случае я не получу boolean свойство. Он будет возвращать либо null либо object. Хотя косвенно мне этого хватит, т.к. if() будет работать с ними как с true и false, но чтобы получить именно true или false , то мне придется сделать дополнительно один метод , который будет возвращать true или false. Хотел спросить как тут правильно поступить, не хотелось бы дополнительный метод писать, но и с приведениями типов играться не люблю. Как в данном случае поступить?
Ответить