duanlang1196 2017-04-06 16:30
浏览 772


i got this error when create date range search in search model.

Integrity constraint violation – yii\db\IntegrityException

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in where clause is ambiguous

here's my model

 public $start_date;
    public $end_date;
public function rules()
            return [
                [['attachment', 'id_client', 'delete_on', 'created_at', 'created_by', 'updated_at', 'updated_by', 'from_location', 'to_location','printed_at', 'lock','verify','verify_by','approved','approved_by'], 'integer'],
                [['policy_num'], 'autonumber', 'format'=>'formatPolicy'],
                [['policy_num','premium_policy'], 'string'],
                [['start_date','end_date'], 'date', 'format'=>'dd-MM-yyyy'],    
                [['from_location', 'to_location'], 'string', 'max' => 55],
                [['location_address'], 'string', 'max' => 100],
                [['attachment'], 'required'],
                [['deductible'], 'string', 'max' => 100],
                [['lock'], 'default', 'value' => '0'],
                [['lock'], 'mootensai\components\OptimisticLockValidator']

here's my search model

    public function rules()
            return [
                [['id', 'policy_num', 'attachment', 'id_client', 'delete_on','created_by', 'updated_by', 'printed_at'], 'integer'],
                [['cover_rate'], 'number'],
                [['start_date','end_date','created_at','updated_at'], 'date','format'=>'yyyy-mm-dd'],

        public function search2($params)
                $query = AskPolicy::find();

                $dataProvider = new ActiveDataProvider([
                    'query' => $query,


            if (!$this->validate()) {
                // uncomment the following line if you do not want to return any records when validation fails
                // $query->where('0=1');
                return $dataProvider;

                'id' => $this->id,
                'policy_num' => $this->policy_num,
                'ask_policy.created_at' => $this->created_at,
                'ask_policy.updated_at' => $this->updated_at,
                'printed_at' => $this->printed_at,

    //         $query->andFilterWhere(['>=', 'ask_policy.created_at', $this->start_date]);
//         $query->andFilterWhere(['<=', 'ask_policy.created_at', $this->end_date]);

            $query->andFilterWhere(['like',"(date_format(FROM_UNIXTIME(`created_at` ), '%Y-%m-%d' ))", $this->start_date])
            ->andFilterWhere(['like', "(date_format(FROM_UNIXTIME(`updated_at` ), '%Y-%m-%d' ))", $this->end_date]);

            return $dataProvider;

if i use below code : search start date and end date not working

$query->andFilterWhere(['>=', 'ask_policy.created_at', $this->start_date]);
$query->andFilterWhere(['<=', 'ask_policy.created_at', $this->end_date]);

how to the best way convert integer datetime in Yii2 for date range search ? i was searching but not find tutorial with good explanation.

  • 写回答

2条回答 默认 最新

  • douju8113 2017-04-12 06:26

    your query is joined with client and both models has created_at field. you can set alias for current model with


    and alias joined table with

    $query->joinWith(['client as cli']);

    then if you want to use created_at from main model you can use t.created_at and if you want to use created_at from joined model you can use cli.created_at.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?



  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源