我有2张桌子。 和id为A表的$ id变量
$A_data= A::find()
->where(['id' => $id])
->one();
$B_data= B::find()
->where(['id' => $A_data->B_id])
->one();
echo $B_data->name;
此代码获取id并从A表中获取行,然后从该行获取B_id从B表获取行。 然后我打印出B表中的数据。
如何通过一个请求执行此操作?不是一个接一个地询问表格数据?
答案 0 :(得分:1)
您的A
模型中应该具有以下关系,例如:
public function getB()
{
return $this->hasOne(B::className(), ['id' => 'B_id']);
}
你的代码可能是:
$A_data = A::find()->where(['id'=>$id])->one();
echo $A_data->B->name;
PS:这将有两个sql请求(懒惰或渴望)。