问题描述
我在 oracle 中有一个表,它有一个名为“created_at”的列,其中时间戳为数据类型,current_timestamp 为默认值,并且该列也不能为空。后来,需要将此列修改为 datatype = date,以今天的日期作为默认值,并且该列也保持“NOT NULL”。我尝试了以下方法:
ALTER TABLE abc.xyz
MODIFY "CREATED_AT" DATE DEFAULT sysdate NOT NULL;
以下是我在视图文件中应用的过滤器:
'filter' => DaterangePicker::widget([
'name' => 'daterange','startAttribute' => 'report_date_from','endAttribute' => 'report_date_to','presetDropdown'=>false,'hideInput'=>true,'options' => [
'placeholder' => 'Select date ...',],])
$query
->andFilterWhere(['between','CREATED_AT',$this->start_date,$this->end_date])
->andFilterWhere(['like','NAME',$this->NAME])
...
以下是遇到的错误:
Getting unkNown property: frontend\models\SearchModel::start_date
正在实施的过滤器是否有任何问题?
解决方法
通过删除 $this 关键字解决:
$query
->andFilterWhere(['between','CREATED_AT',$start_date,$end_date])
因为 $start_date 和 $end_date 是局部变量而不是数据库列。 :D 按日期范围过滤器获取数据的流程没有任何问题。我的天!