我在我的模型ot_note.php
中创建了一个函数,如
public function getOtServices(){
$instrumentsq= Yii::$app->db->createCommand
("SELECT group_concat(im.instrument_name)as instrument
from instrument_master im, ot_note otn, ot_instrument_entry oie where
otn.id=oie.ot_note_id and oie.instrument_name=im.id and otn.id=$this->id");
$instruments=$instrumentsq->queryScalar();
return $instruments;
}
然后在我的index.php
中,我已经包含了返回值
像:
[
'label'=>'services',
'attribute'=>'otServices',
'value'=>'otServices'
],
ot_note_search.php
中的
public $otServices;
public function rules()
{
return [
['otServices'], 'safe'],
];
}
->andFilterWhere([ 'like', 'otServices' , $this->otServices ])
现在列中的值显示正确,但过滤器无效,我收到sql错误。
我需要一些帮助,我应该如何在此计算列上设置过滤器。
答案 0 :(得分:0)
您的" getOtServices"方法正在"和.FilterWhere"而不是" otServices"属性 - 请参阅其基础组件类" __ get"方法。你在这里遇到mysql错误,因为你的搜索模型没有" id"在" getOtServices"结尾使用的值SQL查询。
我会调整以删除getOtServices方法并添加$ query-> addSelect([" group_concat(im.instrument_name)作为工具..."]) - 但我没有足够的信息关于你的搜索方法。无论如何,我相信这是你走的正确方向。