一个Company记录可以对应多个CompanyUser纪录
Company表:
[['id', 'nature_id', 'scale_id', 'pro_id', 'created_at', 'updated_at'], 'integer'],
[['id','company_name'], 'required'],
[['company_logo','company_desc','company_name','nature','scale','pro'], 'string']
public function getCompanyuser()
{
return $this->hasMany(CompanyUser::className(), ['company_id' => 'id']);
}
CompanyUser表
[['id', 'company_id', 'user_id'], 'integer']
关系
public function getCompany()
{
return $this->hasOne(Company::className(), ['id' => 'company_id']);
}
public function getUser()
{
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
CompanyController.php
function actionIndex() {
$user_id = Yii::$app->user->id;
$models = Company::find()->innerJoinWith(['companyuser'])->where(['user_id'=>$user_id])->orderBy(['created_at' => SORT_DESC])->asArray()->all();
$data = [];
foreach ($models as $model) {
$data[] = $model;
}
return json_encode($data);
}
这样可以根据companyuser表的user_id设置条件查询
-----------------------------------------------------------------------------------
SellController.php
$models = BuyRecord::find()->innerJoinWith(['d'=>function($query) {$query->andWhere('tp=1');}])->with('u')->where(['user_id_sell' => $user_id, 'status'=>1,'data_id'=>$dataid])->orderBy(['created_at' => SORT_DESC])->asArray()->all();
BuyRecord.php
public function getU()
{
return $this->hasOne(U::className(), ['id' => 'user_id']);
}
public function getD()
{
return $this->hasOne(Data::className(), ['id' => 'data_id']);
}