我需要游览的字段,但是在代码之下只需获取tourPackage的字段,我必须使用Active Record。
我知道我必须在另一个模型中使用属性来解决这个问题,但我不想使用属性,因为有很多字段或属性。
如何获取巡回表数据?
$models = TourPackage::find()->select(['tour.*'])->leftJoin('tour', 'tour.id=tour_package.tour_id')->all();
答案 0 :(得分:2)
您使用TourPackage
对象,
所以你无法获得Tour模型的属性。
如果您想获得Tour模型属性,请尝试asArray()
离。
$models = TourPackage::find()->select(['tour.*'])->leftJoin('tour', 'tour.id=tour_package.tour_id')->asArray()->all();
现在您将获得Tour
模型属性。
答案 1 :(得分:1)
在TourPackage
中,您需要定义公共属性,您将从Tour
加入。
例如,如果您在巡视中有列号,那么您可以写:
class TourPackage extends \yii\db\ActiveRecord
{
public $number
// ..and other properties you take from tour
在TourPackage
类中,并在Query中添加以下select:
$models = TourPackage::find()->addSelect(['tour_package.*', 'tour.number AS number'])->leftJoin('tour', 'tour.id=tour_package.tour_id')->all();
当然,您可以撰写addSelect(['tour_package.*', 'tour.*'])
,但在这种情况下,具有相似名称的tour
列将覆盖tour_package
列。