php yii多表查询
一個Company記錄可以對應(yīng)多個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']
關(guān)系
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);
}
這樣可以根據(jù)companyuser表的user_id設(shè)置條件查詢
-----------------------------------------------------------------------------------
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']);
}
總結(jié)
以上是生活随笔為你收集整理的php yii多表查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用鼠标去控制物体移动的方法
- 下一篇: PHP文件下载过滤类