Я новичок в ООП. Подскажите, как связать 5 таблиц в yii2 посредством ActiveRecord?
Схема базы прикреплена ниже. База переделана в более упрощенную для наглядности.
yii2 не позволяет проставлять связи в каждой модели (или, может, я что-то не так делаю), поэтому использую viaTable.
Сейчас у меня реализованы отдельные связи к OrderProperty_String и OrderProperty_Type следующим образом:
Код: Выделить всё
class Client extends \yii\db\ActiveRecord
{
public function getActOrder()
{
$ord = $this->hasOne(Order::className(), ['client_id' => 'id']) //Связь с Order. Нужен один определенный, потому условие
->andWhere(['orderType_id'=>[66014]]);
return $ord;
}
}
public function getOrderPropsNames()
{
$propName = $this->actOrder->names;
return $propName;
}
public function getOrderText()
{
$propText = $this->actOrder->strings;
return $propText;
}
}
//////////////////////////////////////////////////////
class Order extends \yii\db\ActiveRecord
{
public function getStrings()
{
return $this->hasMany(OrderProperty_String::className(), ['id' => 'id'])
->viaTable('OrderProperty', ['order_id' => 'id']);
}
public function getNames()
{
return $this->hasMany(OrderProperty_Type::className(), ['id' => 'type_id'])
->viaTable('OrderProperty', ['order_id' => 'id']);
}
}
В результате мне нужно получить название строки name из OrderProperty_Type-> и наполнение value из OrderProperty_String.