我正在使用State和City这两个集合,并想要两者之间的关系,并使用以下代码:
常见\模型\ State.php
return $this->hasMany(City::className(), ['state_id'=>'_id']);
常见\模型\ City.php
return $this->hasOne(State::className(), ['_id' =>'state_id']);
当我运行以下代码时,它正在运行并返回城市的空白结果。
$model = \common\models\State::find()->all();
当我使用state_id
更改集合中的ObjectId
类型时,它会返回结果。所以请建议我如何相互关联state_id
。
答案 0 :(得分:0)
试试这个......
使用$sqll="select max(seq) as mx from poll_portal";
$qryl = DB_query($sqll,$db);
if ($resl = DB_fetch_array($qryl)) {
if ($resl['mx'] != NULL and $resl['mx'] > 0 ){
$newidl = $resl['mx'] + 1;
} else {
$newidl=1;
}
}
$sqlp="select count('title') as tp from poll_portal where title='".$_POST['title']."'";
$resultp=DB_query($sqlp,$db);
$rowp = DB_fetch_array($resultp);
if($rowp['tp']==1) {
$title=$_POST['title']."(".$newidl.")";
} else {
$title=$_POST['title'];
}
命名空间。
<强>常见\模型\ State.php 强>
MongoBB
<强>常见\模型\ City.php 强>
return $this->hasMany(City::className(), [new MongoDB\BSON\ObjectId(['state_id']) => '_id']);
答案 1 :(得分:-1)
例如;注释与评论类
中的单个用户相关联public function getUser()
{
return $this->hasOne(User::className(), ['_id' => 'user_id']);
}
在控制器中,您要在哪里检索注释和用户对象
$query = Comment::find()->orderBy('created_at DESC');
$dataProvider = new ActiveDataProvider([
'pagination' => ['pageSize' =>5],
'query' => $query,
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
您可以使用来自其他视图的评论来访问用户对象
$model->user['profile_url']