我有以下代码,这些代码不会像预期的那样工作。
模型中指定的关系:
public function getShift() {
return $this->hasOne(Shift::className(), ['id' => 'shift_id']);
}
public function getShiftName() {
return $this->shift->name;
}
查询:
$job_position = JobPositions::find()
->innerJoinWith(['shift'])
->where('month(date) = month(curdate())')
->one();
它给出了job_position表的数据而不是shift表的数据。如何获取shift表的数据?
答案 0 :(得分:0)
您应该只使用$job_position->shift
,它将返回相关的Shift
对象。
您还应该阅读:Accessing Relational Data。
当您通过getter方法
xyz
声明名为getXyz()
的关系时,您将能够像对象属性一样访问xyz
。请注意,名称区分大小写。