@darknet37

Выборка данных с перебором. Yii2?

Добрый день. У меня проблема. Есть вот такая выборка:
$ser_spec = ServiceSpec::find()->where(['specialist_id' => $specialist['id']])->asArray()->all();

Результат этого запроса:
Array
(
    [0] => Array
        (
            [id] => 1
            [service_id] => 1
            [specialist_id] => 1
        )
    [1] => Array
        (
            [id] => 8
            [service_id] => 2
            [specialist_id] => 1
        )
    [2] => Array
        (
            [id] => 9
            [service_id] => 3
            [specialist_id] => 1
        )
)

Мне из этого нужно как-то получить только значения поля: service_id. И сделать запрос к таблице Services, где id => service_id
Подскажите пожалуйста, как мне это сделать?
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Настройте связи в моделях и сделайте по примеру как тут

У вас получится вызов по связи: $model->serSpec

Выборка из документации:

class Customer extends ActiveRecord
{
    public function getOrders()
    {
        return $this->hasMany(Order::className(), ['customer_id' => 'id']);
    }
}

class Order extends ActiveRecord
{
    public function getCustomer()
    {
        return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
    }
}


// SELECT * FROM `customer` WHERE `id` = 123
$customer = Customer::findOne(123);

// SELECT * FROM `order` WHERE `customer_id` = 123
// $orders - это массив объектов Order
$orders = $customer->orders;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы