gpt4 book ai didi

php - 如何对同一搜索模型同时使用 condition() 和 addcondition()

转载 作者:行者123 更新时间:2023-12-02 01:17:23 36 4
gpt4 key购买 nike

我有一个条件为“upload_date = today”的 GridView ,但是当我搜索其他日期时,它没有过滤网格。这是我的模型:

public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$date=date('Y-m-d');
$criteria=new CDbCriteria(array('order'=>'upload_date ASC'));
$criteria->condition = "upload_date='$date' ";
if(isset($_GET['upload_date']))
{
$criteria->addCondition('upload_date = :upload_date','AND');
$criteria->params[':upload_date'] = $this->upload_date;
}

$criteria->compare('book_id',$this->book_id);
$criteria->compare('date_received',$this->date_received,true);
$criteria->compare('batch',$this->batch,true);
$criteria->compare('isbn_no',$this->isbn_no,true);
$criteria->compare('book_title',$this->book_title,true);
$criteria->compare('auther_name',$this->auther_name,true);
$criteria->compare('upload_date',$this->upload_date,true);

return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>50
),

));
}

我正在尝试在同一搜索中同时使用条件和添加条件。我在上面的模型中做错了什么?

最佳答案

试试这个:

public function search()
{
$criteria=new CDbCriteria(array('order'=>'upload_date ASC'));

if(isset($_GET['ModelName']['upload_date']))
{
$criteria->compare('upload_date',$this->upload_date,true);
// $criteria->addCondition('upload_date = :upload_date');
// $criteria->params[':upload_date'] = $this->upload_date;
}
else
{
$date=date('Y-m-d');
$criteria->condition = "upload_date='$date' ";
}
$criteria->compare('book_id',$this->book_id);
$criteria->compare('date_received',$this->date_received,true);
$criteria->compare('batch',$this->batch,true);
$criteria->compare('isbn_no',$this->isbn_no,true);
$criteria->compare('book_title',$this->book_title,true);
$criteria->compare('auther_name',$this->auther_name,true);
$criteria->compare('upload_date',$this->upload_date,true);

return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>50
),

));
}

您不需要 addCondition,特别是因为您要向同一列添加条件。

编辑:
在您的主要初始条件中,您已经设置了 upload_date = $date,现在如果您向其添加条件,例如 $_GET['ModelName']['upload_date'] provided通过过滤器中的用户,您的实际数据库查询将变成类似 select * from tbl_name where upload_date = 'xxx' and upload_date = 'yyy' ,这里 xxx=$date 你给了,和 yyy=用户提供的日期。现在如果 xxx != yyy,查询将如何返回任何值?这是不可能的。

希望你明白这个解释。

关于php - 如何对同一搜索模型同时使用 condition() 和 addcondition(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9562378/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com