模型 biosafetycheck (檢查表) 一對多 biosafetyaccept (接受項,檢查項), 模型 biosafetyaccept 一對一 biosafetyproblem (問題與整改記錄)
biosafetycheck 中
public function getbiosafetyaccepts()
biosafeaccept 中
/**
* gets query for [[record]].
** @return \yii\db\activequery
*/public function getrecord()
/*** gets query for [[biosafetyproblem]].
** @return \yii\db\activequery
*/public function getbiosafetyproblem()
biosafetyproblem 中
public function getaccept()
現在,我們要對 biosafetyproblem 的 gridview 增加 biosafetycheck 中的兩個欄位check_time,address,並且可以實現排序和搜尋過濾。
biosafetyproblemsearch 中增加屬性 checktime和address(相當於關聯表字段在「本地」的「**」),並且新增規則到rules中
class biosafetyproblemsearch extends biosafetyproblem
*/public function rules()
修改 search 方法(按關係設定的連線查詢,排序規則,查詢條件,因為排序欄位和搜尋字段對應背後的sql,所以其名稱是資料庫欄位名,只有屬性名是我們新增的屬性名)
public function search($params)
// grid filtering conditions
$query->andfilterwhere([
'id' => $this->id,
'accept_id' => $this->accept_id,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
]);$query->andfilterwhere(['like', 'description', $this->description])
->andfilterwhere(['like', 'urls_problem_pic', $this->urls_problem_pic])
->andfilterwhere(['like', 'result', $this->result])
->andfilterwhere(['like', 'urls_result_pic', $this->urls_result_pic]);
$query->andfilterwhere(['like', 'address', $this->address]); // 新增的
$query->andfiltercompare('check_time', $this->checktime); // 新增的
return $dataprovider;
}
最後修改 gridview 部分(accept_id為gii自動生成的方式,如果不需要排序和搜尋,直接accept.record.check_time那樣就行了)
//'accept_id',
//'accept.record.check_time',
//'accept.record.address',
['attribute' => 'checktime', 'label' => '檢查時間',
'value' => 'accept.record.check_time',],[
'attribute' => 'address', 'label' => '檢查位置',
'value' => 'accept.record.address',
],
_search表單中也需要相應修改(當然,日期字段最好用datepicker)
<?= $form->field($model, 'checktime')->label('檢查時間')->textinput() ?>
<?= $form->field($model, 'address')->label('檢查位置')->textinput() ?>
yii2GridView的簡單使用
初學yii2.0,用到gridview,翻閱官方文件,也沒怎麼看明白,自己慢慢摸索出來的,僅供參考 gridview widget dataprovider dataprovider,你傳過來的activedataprovider filtermodel searchmodel,columns cl...
YII2 Gridview 部分使用規則
yii提供了一套資料小部件 widgets 這些小部件可以用於顯示資料。detailview 小部件能夠用於顯示一條記錄資料,listview 和 gridview 小部件能夠用於顯示乙個擁有分頁 排序和過濾功能的乙個列表或者 1.頁面顯示的時間戳轉換 a.label 建立日期 attribute ...
YII2 GridView資料小部件
dataprovider dataprovider,filtermodel searchmodel,columns class yii grid serialcolumn attribute id contentoptions width 5 username nickname realname e...