在使用viaTable的Yii2 hasMany关系中,可以通过以下方式包括列名:
public function getItems()
{
return $this->hasMany(Item::class, ['id' => 'item_id'])
->viaTable('order_item', ['order_id' => 'id']);
}
上述代码中,通过viaTable方法指定了中间表的名称为'order_item',并且指定了中间表中与当前模型关联的字段名和关联模型的字段名。
$order = Order::find()
->with(['items' => function ($query) {
$query->select(['id', 'name']);
}])
->where(['id' => $orderId])
->one();
上述代码中,通过with方法指定了要包括的关联模型items的列名,这里只包括了'id'和'name'两列。
通过以上两个步骤,就可以在使用viaTable的Yii2 hasMany关系中包括列名了。在实际应用中,可以根据具体需求选择需要包括的列名,并通过select方法指定。
领取专属 10元无门槛券
手把手带您无忧上云