Yii搜索方法不起作用并且不与数据库中的数据进行比较

2024-03-19

您好,昨天我尝试了一种按日期时间创建搜索的方法,您可以看到链接:搜索任务 https://stackoverflow.com/questions/23517282/yii-search-form-by-date-from-to-criteria在下一篇文章中。 今天我尝试另一种方式:当我成功时,我将把解决方案放回去,谢谢。

这是我的搜索文件:

<?php Yii::app()->clientScript->registerCoreScript('jquery'); ?>
<?php
/* @var $this ApplicationController */
/* @var $model Application */
/* @var $form CActiveForm */
?>

<div class="wide form">

<?php $form=$this->beginWidget('CActiveForm', array(
    'action'=>Yii::app()->createUrl($this->route),
    'method'=>'get',
        'enableAjaxValidation'=>false,
        //$model->search(),
)); ?>
<div class="row">
        <?php echo $form->label($model,'AUUsername'); ?>
        <?php echo $form->textField($model,'AUUsername',array('size'=>45,'maxlength'=>45)); ?>
    </div>
    <div class="row">
        <?php
        //datepicker for date_from 
        echo CHtml::label("From date", 'datepicker');
        $this->widget('zii.widgets.jui.CJuiDatePicker', array(
            'name' => 'filters[date_from]',
            //'value' => $filters['date_from'],
            // additional javascript options for the date picker plugin
            'options' => array(
                    'showButtonPanel' => true,
                'showAnim' => 'slide', //'slide','fold','slideDown','fadeIn','blind','bounce','clip','drop'
                'dateFormat'=>'yyyy-mm-dd hh:mm:ss',
                ),
            'htmlOptions' => array(
                'id'=>'date_from',  
                ),
            ));?>
        </div>
        <div class="row">
            <?php
                //datepicker for date to
            echo CHtml::label("To date", 'datepicker');
            $this->widget('zii.widgets.jui.CJuiDatePicker', array(
                    'name' => 'filters[date_to]',
                //'value' => $filters['date_to'],
                // additional javascript options for the date picker plugin
                'options' => array(
                    'showButtonPanel' => true,
                    'showAnim' => 'slide', //'slide','fold','slideDown','fadeIn','blind','bounce','clip','drop'
                    'dateFormat'=>'yyyy-mm-dd hh:mm:ss',
                ),
                'htmlOptions' => array(
                    'id'=>'date_to',    
                    ),
                ));?>
        </div>
    <div class="row buttons">
        <?php echo CHtml::submitButton('Search'); ?>
    </div>
    <?php $this->endWidget(); ?>
</div>

这是我的模型文件:

<?php
class AppLog extends AltActiveRecord 
{
    private $_ActionName=null;

    public $date_from;
    public $date_to;

    public function getDbConnection(){
        return Yii::app()->connectionManager->getConnection(Yii::app()->user->getState('application'));
    } 

    public function relations ()
    {
        return array (
            'actions'=>array(self::HAS_ONE, 'Actions', array('ActionID'=>'ActionID')),
        );  
    }   

    public function getActionName()
    {
        if ($this->_ActionName === null && $this->actions !== null)
        {
            $this->_ActionName = $this->actions->ActionName;
        }
        return $this->_ActionName;
    }

    public function setActionName($value)
    {
        $this->_ActionName = $value;
    }  

    public function tableName()
    {
            return 'applog';
    }

    public function rules()
    {
        return array(                    
                array('AppUserID','length', 'max'=>11),
                array('AUUsername','length', 'max'=>45),

                array('AUActionTime','type','type'=>'datetime','datetimeFormat'=>'yyyy-mm-dd hh:mm:ss'),

                // The following rule is used by search().
                // @todo Please remove those attributes that should not be searched.
                array('AppUserID,AUUsername, date_from, date_to', 'safe', 'on'=>'search'),

        );
    }

    public function attributeLabels()
    {
        return array(
                'ActionID' => 'ID',
                'AUUsername' => 'Naziv korisnika',

                'AUActionTime' => 'Vrijeme akcije',

        );
    }

    public function search()
    {

        $criteria=new CDbCriteria;
        $criteria->compare('APUsername',$this->AUUsername,true);

        $criteria->compare('AUActionTime',$this->AUActionTime,true);
        $criteria->compare('date_from',$this->date_from,true);
        $criteria->compare('date_to',$this->date_to,true);     
        return new CActiveDataProvider($this, array(
                'criteria'=>$criteria,
        ));
    }

    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }
}
?>

这是我的控制器搜索操作

public function actionLista()
{
    $model = new Datalist;
    $this->layout='column1';
    //

    if($_GET!=null) 
    {
        $date_from = $_GET['filters']['date_from'];

        $params[':date_from'] = date('yyyy-mm-dd hh:mm:ss', strtotime($_GET['filters']['date_from']));
        $date_to = $_GET['filters']['date_to'];
        $params[':date_to'] = date('yyyy-mm-dd hh:mm:ss', strtotime($_GET['filters']['date_to']));

        if($date_from == '') $params[':date_from'] = date('yyyy-mm-dd hh:mm:ss', strtotime('2014-01-01 00:00:00'));
        if($date_to == '') $params[':date_to'] = date('yyyy-mm-dd hh:mm:ss', strtotime('2999-01-01 00:00:00'));
        //$condition = '(AUActionTime>:date_from OR AUActionTime<:date_to)';


        //set filters
        //$this->setFilters($_GET['filters']);
        //die(CVarDumper::dump($params,10,true));                        
    }
    else {
        $this->filters = array(
        'date_from' => date('yyyy-mm-dd hh:mm:ss', strtotime('2014-01-01')),
        'date_to' => date('yyyy-mm-dd hh:mm:ss', strtotime('today + 1 day')),
        );
    }

1)在你的控制器中,你应该将场景设置为“搜索”,如下所示

 $model = new Datalist('search');
 $model->unSetAttributes();

2)在渲染视图之前,您需要将 $_GET 值分配给模型,如下所示

// If your get vars are different then accordingly
if(isset($_GET['AppLog'])){
     $model->attributes = $_GET['AppLog'];

....
  $model->date_to = $date_to // After you retrieved and formatted from $_GET as above 
  $model->date_from = $date_from

您的控制器操作似乎没有渲染视图;我假设您在这里省略了它,但您正在以某种方式显示输出

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii搜索方法不起作用并且不与数据库中的数据进行比较 的相关文章

  • 检查字符串是否多次包含子字符串[重复]

    这个问题在这里已经有答案了 要搜索字符串内的子字符串 我可以使用contains 功能 但是如何检查一个字符串是否多次包含子字符串呢 优化这一点 对我来说 知道有多个结果而不是有多少就足够了 尝试利用快速IndexOf and LastIn
  • SOLR - 过滤器查询中的正则表达式

    我想在 fq 中实现 Regex 但以前从未实现过 我的属性中有以下值 字段类型为 小写 Prop company1 city1 state1 country1 高级分析化学家 芝加哥 我想根据正则表达式过滤结果 正则表达式应该与上面的内容
  • 逐行比较两个不同长度的数据帧,并为每行添加具有相等值的列

    我在 python pandas 中有两个不同长度的数据帧 如下所示 df1 df2 Column1 Column2 Column3 ColumnA ColumnB 0 1 a r 0 1 a 1 2 b u 1 1 d 2 3 c k 2
  • REST Web 服务 - 动态查询参数

    我需要将动态查询参数发送到 REST Web 服务 GET 方法 如下所示 主机 端口 应用程序 field1 XXX value1 VVV field2 XXX value2 XXX 消费者可以发送参数最多为字段和值 每个字段都映射到值
  • 复杂的 SOLR 查询,包括 NOT 和 OR

    我对 SOLR 搜索有一些相当复杂的要求 我需要针对标记内容的数据库执行这些搜索 我需要首先过滤数据库以获取与我的过滤器标签匹配的结果 任何具有黑名单中的标签的结果都应被删除 除非它们也包含白名单中的标签 假设我想检索所有标记为 森林 或
  • PHP比较日期[重复]

    这个问题在这里已经有答案了 可能的重复 PHP日期比较 https stackoverflow com questions 4143741 php date compare 我从 mySQL 数据库中获取了一个日期 如下所示 2011 06
  • 如何在java中的组合框之间使用过滤器?

    我的数据库中有两个表 分别是学期表和课程表 学期表中有学期 ID 课程 ID 课程名称和 Sdepartment 部门名称 课程表有课程 ID 和课程名称 我的 jframe 有两个组合框 第一个用于选择部门 第二个用于选择课程 我想选择所
  • 从 WordPress 搜索结果页面获取类别名称

    在特定博客类别中进行搜索查询 重定向到 WP BLOG 主页面 后 我的搜索 URL 如下所示 online shop s category new posts category post type post 不幸的是 我无法在搜索结果页面
  • 自定义 Tridion 搜索索引处理程序:页面 url 的自定义字段与标准字段?

    我正在研究 SDL Tridion 2011 GA 的自定义搜索索引处理程序 我得到了一些工作 使用Arjen 提供的非常有用的信息 http 80000ft blogspot nl 2012 08 search indexing hand
  • 使用PHP获取http url参数而不自动解码

    我有一个像这样的网址 test php x hello world y 00h 00e 00l 00l 00o 当我将它写入文件时 file put contents x txt GET x gt hello world file put
  • 列表有简短的 contains 函数吗?

    给定一个列表xs和一个值item 如何检查是否xs包含item 即 如果任何元素xs等于item 有没有类似的东西xs contains item For performance considerations see Fastest way
  • 从中间部分匹配完成建议elasticsearch

    我有一个名为搜索建议具有以下 search suggest type completion analyzer simple payloads true preserve separators false preserve position
  • 如何为高流量网络应用程序实现“保存搜索”功能?

    我想知道可以在 eBay 等大型网络应用程序上找到的 保存的搜索 功能 您可以做的就是保存搜索 例如 宾得镜头 50mm 1 4 每当有人出售符合搜索条件的新优质标准快速宾得镜头时 您都会收到通知 对我来说 实现此类功能并不是一件简单的事情
  • 如何在从左到右、从上到下排序的二维数组中搜索数字?

    我最近收到了这个面试问题 我很好奇有什么好的解决方案 假设我有一个二维数组 其中所有 数组中的数字在增加 从左到右 从上到下的顺序 底部 搜索和搜索的最佳方式是什么 判断目标号码是否在 大批 现在 我的第一个倾向是使用二分搜索 因为我的数据
  • 将 dataGridView 绑定到绑定列表并按文本框过滤行

    我正在开发一个 Winforms 应用程序 并且有一个已经绑定到 dataGridView 的对象的 BindingList 我还有一个 过滤器 文本框 如果它们与文本框文本不匹配 我想从 datagridview 行中过滤掉行 我想以某种
  • java:在目录和子目录中根据文件名搜索文件

    我需要根据目录树中的名称查找文件 然后显示该文件的路径 我发现了类似的东西 但它根据扩展名进行搜索 谁能帮助我如何根据我的需要重新编写这段代码 谢谢 public class filesFinder public static void m
  • YII 使用 gzip 压缩应用程序输出

    下面的代码有两个事件 有什么好处 它实际上在做什么 require once yii app Yii createWebApplication config Yii app gt onBeginRequest function event
  • iOS 安全性将带有密码的数据发送至服务器或从服务器发送数据

    我正在构建一个应用程序 需要在服务器执行任何操作之前从用户设备发送密码以在服务器上进行身份验证 事情是这样的 用户的手机上有一个纯文本密码 该密码也在服务器中以 bcrypt 二进制文件的形式存在 用户想要从数据库中获取某些内容 因此用户通
  • mysql 如何比较 dd-mon-yy 格式的日期

    如何比较格式中的日期dd mon yy 例如 2014 年 11 月 10 日 gt 2013 年 10 月 7 日 select expiration date from grocery where expiration date lt
  • AR模型中的关系函数,多对一关系

    所以这是场景 我有两个表 问题和项目 一个项目可以有多个问题 一个问题只能是一个项目 既然Issue是多对一的 那么你必须定义它吗 因为我知道在项目模型中我有 public function relations return array i

随机推荐