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搜索方法不起作用并且不与数据库中的数据进行比较 的相关文章

  • 如何在 Yii 框架中使用 jQuery?

    如何在 yii 中使用 jquery javascript 如何在 yii 中使用我的脚本 为什么这与以其他方式使用 jQuery 有什么不同 如何在yii中使用jquery 如上所述 您可以注册新的脚本块 也可以注册新的外部脚本文件 您还
  • Yii 添加条件

    我尝试根据我的条件从表中获取行 我的代码 conditions array id gt array 148028 118508 criteria new CDbCriteria foreach conditions as key gt va
  • “after_filter”如何/何时工作/运行?

    我正在使用 Ruby on Rails 3 1 我想知道 对于表现原因 无论是否after filter渲染视图文件后运行 也就是说 当用户访问我的应用程序 URL 时 他 她应该显示的相关视图文件先于渲染after filter运行或af
  • 如何将 UIWebView 中的输入的键盘按钮“返回”更改为“搜索”?

    我有一个简单的 HTML 文件 它将显示在 UIWebView 中 p p
  • Spotify:使用网络 API 登录不接受重定向 URL

    我正在尝试使用 Web API 登录 Spotify 因为我不需要会话对象 在我的授权方法中 我需要传入重定向 url 但 GET 请求中不接受 iOS 重定向 url 的格式化方式 func authorize create the ur
  • 使用 dismax 处理程序进行通配符搜索?

    我已成功索引文件 并且希望能够使用通配符进行搜索 我目前正在使用 dismaxRequestHandler QueryType dismax 进行搜索 以便我可以搜索查询的所有字段 像 computer 这样的常规搜索会返回结果 但 com
  • FOSUserBundle 和 ACL 业务角色

    这个周末我开始学习 Symfony 2 我没有遇到任何问题 因为我认为该框架有详细记录 我正在使用 FOSUserBundle 包进行 ACL 我想知道是否可以使其类似于 Yii 框架 bizRule return Yii app gt u
  • 未为 OPTIONS Ajax 请求设置标头

    我有一个ascx page GetToken ashx public void ProcessRequest HttpContext context context Response ContentType text plain conte
  • C++ 如何确定字母表中一个单词是否在另一个单词之前

    我正在使用sort C 中的函数对 Game 类型的对象向量进行排序 这是我自己定义的 为此 我手动编写一个函数来代替operator lt 并将作为第三个参数传递给sort 功能 首先 我根据分数进行比较 然后 如果分数相同 我会根据球队
  • RegisterGlobalFilters 的目的是什么?

    在 MVC3 中 我以这种方式启用了 CustomErrors
  • 我可以在元标记中使用 HTML 字符实体吗?

    我有一个有两种语言的网站 英语和中文 在使用 UTF 8 字符集的英文主页中 我有 例如 这出现在搜索结果中 我想将其更改为 在哪里 20013 25991 是 中文 的 ISO 实体 搜索结果中会显示为 中文 吗 我无法将 中文 直接粘贴
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • 如何使用 ng-repeat 复选框和 Angularjs 过滤表格

    曾几何时 这是可行的 但不知何故它被破坏了 我希望能够使用 ng repeat 生成复选框 以根据存储的数据获取所需数量的复选框 并使用它们来过滤生成的表 此外 我不希望重复复选框的相同值 我用代码做了一个plnkr div class r
  • 在 Python 中搜索文本文件并打印相关行?

    如何在文本文件中搜索关键短语或关键字 然后打印关键短语或关键字所在的行 searchfile open file txt r for line in searchfile if searchphrase in line print line
  • 属性“tablename.title”未定义

    我是伊比 我想做的是上传图像 照片 以及具有更新功能的数据库中的路径条目 我已点击此链接 http www yiiframework com wiki 349 how to upload image photo and path entry
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • 从流中过滤/删除无效的 xml 字符

    首先 我无法更改 xml 的输出 它是由第三方生成的 他们在 xml 中插入无效字符 我得到了 xml 字节流表示形式的 InputStream 除了将流消耗到字符串中并对其进行处理之外 是否有一种更干净的方法来过滤掉有问题的字符 我找到了
  • 分离并重新附加“tools:rstudio”

    又名玩火 以下不起作用 rstd obj lt as environment tools rstudio detach tools rstudio attach rstd obj name tools rstudio 好吧 它似乎有效 但随
  • 使用 include 的 Javascript 过滤对象

    我正在尝试使用 javascript 中的 filter 函数来过滤对象 我想过滤这样的数组 1615 1616 它在代码中被引用为 value verdier 数据集是一个大型数组 包含从 JSON 字符串解析的具有多个属性的对象 数组中
  • 有选择地设置 iskeyword

    通常我需要搜索大型 xml 模式文件以查找光标下单词的下一个出现位置 但如果它是一个标签或结束标签 则最好不要搜索 在下面的示例中 是光标所在的位置 使用 or 与 iskeyword 不包括 gt or lt 将在之间移动

随机推荐