Выборка данных из таблицы с проверкой на id

138
12 сентября 2019, 19:00

У меня появилась необходимость сделать мини-отчет. И мне необходимо вытащить из разных таблиц определённые ячейки. И вот собственно сам вопрос: У меня есть следующий код (чуть ниже) и мне необходимо выводить данные из таблицы Order но только у тех элементов у которых id совпадает с 1 из order_id из таблицы workSession.

    $workSessions = OrderPayment::find()->where(['status' => OrderPayment::STATUS_PAYED])->all();
    $Ffff = OrderPayment::find()->orderBy('order_id')->select('order_id')->all();
    $workSessi = Order::find()
        ->where(['id' => $workSessions->id])
        ->all();

При подобной попытке получить эти данные я получаю NULL. Как мне решить мою задачу?

Answer 1
  1. Как я понимаю тут нужно использовать не $workSessions->id, а $workSessions->order_id.
  2. Лучше использовать релейшены. Т.е. что-то типа:

    $workSessions = OrderPayment::find()->where(['status' => OrderPayment::STATUS_PAYED])->with('order')->all();
    $order = $workSessions->order;
    

При условии что в модели OrderPayment есть метод:

public function getOrder()
{
    return $this->hasOne(Order::class, ['id' => 'order_id']);
}

При таком подходе будет всего два запроса к БД, это достать все order_payment и по ним достать все order. А если без релейшена, то для каждого order_payment будет делаться запрос на получения order для него, что является не оптимальным решением.

READ ALSO
Хранение аффилированных лиц в бд

Хранение аффилированных лиц в бд

В БД есть таблица company_card

160
Вопрос о CSS: зачем так явно указывать тип?

Вопрос о CSS: зачем так явно указывать тип?

Я так понимаю, что в коде input[type=text] {} тип "текст" явно указывает на все input этой категорииИ только для них будет применяться этот селектор? Верно?...

129
Как удалить строку цвета из кода?

Как удалить строку цвета из кода?

Как в этом коде грамотно убрать строку или код, отвечающий за цвет тени? Сама строка rgba(0,0,0,"+c+") находится в блоке //shadowХотелось убрать цвет...

161