在用户表格中,我有一个created_at
列。在成为属性的用户AR模型中,在\yii\grid\GridView
中,我将该属性拆分为'columns' => ['created_at:date', 'created_at:time'],
问题:如何为相应的列提供搜索字段,我的意思是它们不是实际的db列,因此不是模型属性。所以我无法做到
$query->andFilterWhere([
'crated_at_date' => $this->crated_at_date,
'created_at_time' => $this->created_at_time,
]);
我知道搜索字段与\yii\grid\Column::filterOptions
相关,但更具体地说,我不知道如何在搜索模型中指定andFilterWhere()
子句。
答案 0 :(得分:0)
在searchModel()
中,您可以尝试这种方式:
$query->andFilterWhere([
'like',
'FROM_UNIXTIME(created_at, "%Y-%m-%d")',
$this->crated_at_date
])
->andFilterWhere([
'like',
'FROM_UNIXTIME(created_at, "%h:%i:%s %p")',
$this->created_at_time
])
嗯,它没有经过测试,但我想它会起作用。
答案 1 :(得分:0)
您可以通过将输入数据时间转换为时间来过滤或多或少:
order = ['foo', 'bar']
data = [{'name': 'bar', 'someData': 'someValue'}, {'name': 'foo', 'someData': 'someValue'}]