Php Yii2在onCondition中使用变量
在onCondition中可以使用变量吗 关系如下:Php Yii2在onCondition中使用变量,php,yii2,Php,Yii2,在onCondition中可以使用变量吗 关系如下: public function getMybook() { return $this->hasOne(Book::className(), ['book_id' => 'idbook'])->onCondition(['user_id' => $user_id]); } 我想将其与以下内容结合使用: $books = Books::find()->joinWith('myBook')->all()
public function getMybook()
{
return $this->hasOne(Book::className(), ['book_id' => 'idbook'])->onCondition(['user_id' => $user_id]);
}
我想将其与以下内容结合使用:
$books = Books::find()->joinWith('myBook')->all();
但是如何将user_id参数发送到onConditon中呢?谢谢 不能在关系函数中使用动态参数
但是为什么不使用where条件:
$books = Books::find()->joinWith('myBook')->where(['myBook.user_id'=>$user_id])->all();
您可以使用闭包,例如:
return $this->hasOne(Book::className(), ['book_id' => 'idbook'])->andWhere('user_id = :user_id');
$user_id = 123;
$books = Books::find()->joinWith([
'myBook' => function ($q) use ($user_id) {
$q->addParams([':user_id' => $user_id]);
}
])->all();
不,我需要将sql设置为select*from books left join mybook on books.id=mybook.id和userid=1,其中有些内容。如果我使用where子句,它将变成select*from BOOTKS left join mybook on books.id=mybook.id,其中userid=1,结果不是我想要的。