[表中有employee
和company
员工包含company_id
。
如果我使用joinWith()
,我的过滤器搜索运行正常
$query = Employee::find();
$query->joinWith(['company']);
//and below is the filterwhere
->andFilterWhere(['like', 'company.name', $this->company_id]);
但是问题出在我使用with()
进行查询时>
$query = Employee::find()->with(['company']); //when query contain with() then this filter is not working. ->andFilterWhere(['like', 'company.name', $this->company_id]);
[当我使用with()
时出现错误
Database Exception – yii\db\Exception SQLSTATE[42S22]: Column not found: 1054 Unknown column 'company.name' in 'where clause' The SQL being executed was: SELECT COUNT(*) FROM `employee` WHERE `company`.`name` LIKE '%1%'
这里是员工与公司的关系:
public function getCompany(){ return $this->hasOne(Company::className(), ['id'=> 'company_id']); }
任何人都可以帮助我或指导我如何使用查询中的with()
正确过滤数据?谢谢。我正在yii2工作。有员工,公司表员工包含company_id。如果我使用joinWith()$ query = Employee :: find();,我的过滤器搜索运行正常。 $ query-> ...
joinWith()
和with()
方法。这是因为这些方法做的事情完全不同。