标签: yii

将数据导出为CSV时处理一对多关系

我有一个包含11个表的数据库,其中9个表与用户信息表有一对多的关系.

用户表:

ID , Name , Age , phone , . .......
Run Code Online (Sandbox Code Playgroud)

在ID的基础上,关系是与例如表格的关系

User_cars
ID,User_ID(fk),Make , Model , .....
Run Code Online (Sandbox Code Playgroud)

我需要做的是将这些数据存储在CSV文件的数据库中.由于存在一对多关系,因此简单连接不起作用,因为行是重复的.(不可显示客户端的格式:S)

我使用Yii作为Web应用程序,需要一些扩展,可以用一些可读的方式呈现它.

或者也许PHP脚本也可以完成任务.

php mysql database csv yii

1
推荐指数
1
解决办法
1694
查看次数

CSqlDataProvider复杂查询和totalItemCount

我有一个非常复杂的查询使用CSqlDataProvider,我试图让分页totalItemCount工作,但它返回错误计数.我试图为COUNT项创建第二个SQL,但这真的很难,有人可以帮助我吗?

CSqlDataProvider文档:http://www.yiiframework.com/doc/api/1.1/CSqlDataProvider

控制器代码:

    $dayofweek = date('w');     

    $sql = "( SELECT `profile`.`id` as profile_id, `profile`.`name` as profile_name, `events_reminder`.`id`,
                CASE WHEN weekday >= $dayofweek
                    THEN 
                        DATE_FORMAT( CONCAT( DATE_ADD(CURDATE(), INTERVAL weekday - $dayofweek DAY), ' ', event_time ), '%d/%m/%Y %H:%i')
                    ELSE
                        DATE_FORMAT( CONCAT( DATE_ADD(CURDATE(), INTERVAL 7 - $dayofweek + weekday DAY), ' ', event_time ), '%d/%m/%Y %H:%i')
                    END as revent_datetime,
                CASE WHEN weekday >= $dayofweek
                    THEN 
                        DATE_FORMAT( CONCAT( DATE_ADD(CURDATE(), INTERVAL weekday - $dayofweek DAY), ' ', list_time …
Run Code Online (Sandbox Code Playgroud)

php mysql yii

1
推荐指数
1
解决办法
1312
查看次数

CJSON ::用新行编码(\n)

我试着去添加一个新行\nCJSON::encode,但增加了另一个\忽略的命令.我该怎么做才能CJSON::encode发布\n

码:

CJSON::encode(array('error'=>'First Line\nSecond Line'))
Run Code Online (Sandbox Code Playgroud)

返回:

{"error":"First Line\\nSecond Line"}
Run Code Online (Sandbox Code Playgroud)

我想要的是:

{"error":"First Line\nSecond Line"}
Run Code Online (Sandbox Code Playgroud)

php yii

1
推荐指数
1
解决办法
520
查看次数

数组内的IF条件

在尝试使用if内部条件array,但它不起作用.我该如何解决这个问题?

码:

public function behaviors()
{
    return array(
        'withRelated'=>array(
            'class'=>'ext.wr.WithRelatedBehavior',
        ),
        Yii::app()->controller->id != 'apiv1' ?
        'datetimeI18NBehavior'=>array(
            'class' => 'ext.DateTimeI18NBehavior',
        ), : false,
    );
}
Run Code Online (Sandbox Code Playgroud)

错误:

Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in .../models/Users.php on line 77
Run Code Online (Sandbox Code Playgroud)

php yii

1
推荐指数
1
解决办法
1016
查看次数

如果取消选中该复选框,如何删除字段的客户端验证

在这里,我的方案是,如果取消选中该复选框,则将禁用相应的字段,然后对于禁用的字段,客户端验证不应在此处执行,例如,如果我取消选中(有父亲)的复选框,那么与该复选框相关的字段像父亲的名字,姓氏......所以对于这些字段,客户端验证不应该执行.如果我再次检查该复选框,则应执行客户端验证

这里我的问题是,当我取消选中该复选框时,客户端验证也正在进行,表单未提交,任何人都可以在这种情况下帮助我.这是我的示例代码

<?php echo $form->checkBox($modelFamilyFather, '[1]type',   array('id'=>'type', 'checked'=>'checked','onChange' => "
    if(this.value==checked)
    {

         $('#" . CHtml::activeId($modelFamilyFather, '[1]firstname') .
    "').removeAttr('disabled','disabled');

            $('#" . CHtml::activeId($modelFamilyFather,
    '[1]lastName') . "').removeAttr('disabled','disabled');



         $('#" . CHtml::activeId($modelFamilyFather, '[1]occupation') .
    "').removeAttr('disabled','disabled');

    $('#" . CHtml::activeId($modelFamilyFather, '[1]averageMonthlyIncome') .
    "').removeAttr('disabled','disabled');

    }

    else {
        $('#" . CHtml::activeId($modelFamilyFather, '[1]firstname') .
    "').attr('disabled','disabled');

            $('#" . CHtml::activeId($modelFamilyFather,
    '[1]lastName') . "').attr('disabled','disabled');



         $('#" . CHtml::activeId($modelFamilyFather, '[1]occupation') .
    "').attr('disabled','disabled');

    $('#" . CHtml::activeId($modelFamilyFather, '[1]averageMonthlyIncome') .
    "').attr('disabled','disabled');

    }



    "))." <label for='Father'>Has a Father</label>";

    ?>
Run Code Online (Sandbox Code Playgroud)

php yii

1
推荐指数
1
解决办法
1090
查看次数

Yii单选按钮问题

我使用Yii生成单选按钮代码看起来像

    <span class="gender">
       <?php echo CHtml::activeRadioButton($model,'gender',array('value' => 'male')); ?>
    </span>

  <span class="gender">
       <?php echo CHtml::activeRadioButton($model,'gender',array('value' => 'female')); ?>
  </span>
Run Code Online (Sandbox Code Playgroud)

它会生成下一个HTML代码

    <span class="gender">
<input id="ytweb\models\register_gender" type="hidden" value="0" name="web\models\register[gender]">

<input value="male" class="male" name="web\models\register[gender]"id="web\models\register_gender" type="radio"></span>

<span class="gender">
<input id="ytweb\models\register_gender" type="hidden" value="0" name="web\models\register[gender]">

<input value="female" class="female" name="web\models\register[gender]" id="web\models\register_gender" type="radio">

</span>
Run Code Online (Sandbox Code Playgroud)

当我从这个表格获得POST时,如果我检查了女性它会返回女性,但是如果我对男性进行检查则返回0.我认为这是因为相同的输入ID.但我怎么能避免呢?

forms radio-button yii

1
推荐指数
1
解决办法
4169
查看次数

Yii在视图上呈现Javascript文件

我想在我的视图中包含JavaScript文件.

我想将它们一起渲染而不是脚本文件(registerScriptFile).

我怎样才能做到这一点?

javascript php include yii

1
推荐指数
1
解决办法
1158
查看次数

使用ENGINE子句在迁移中创建表失败

我正在尝试使用Yii进行迁移并在up()方法中创建新表.只要我不添加该ENGINE=InnoDB子句,它就可以正常工作.在那种情况下 - 它给了我一个错误near ENGINE.

public function up()
{
    $this->createTable('tbl_project', array(
        'id' => 'pk',
        'name' => 'string NOT NULL',
        'description' => 'text NOT NULL',
        'create_time' => 'datetime DEFAULT NULL',
        'create_user_id' => 'int(11) DEFAULT NULL',
        'update_time' => 'datetime DEFAULT NULL',
        'update_user_id' => 'int(11) DEFAULT NULL',
    ), 'ENGINE=InnoDB');
}
Run Code Online (Sandbox Code Playgroud)

我的Yii版本是1.1.12.PHP 5.4.3,MySQL 5.5.24.

这是一些Yii bug吗?

编辑(yii bug描述):

*** applying m130208_133533_create_table_project
> create table tbl_project ...exception 'CDbException' with message 'CDbComm
and failed to execute the SQL statement: CDbCommand failed …
Run Code Online (Sandbox Code Playgroud)

php mysql migration yii

1
推荐指数
1
解决办法
2339
查看次数

隐藏的分页摘要文本

我在Yii中使用CGridView来创建表.

我想用分页显示我的表格,但隐藏在顶部的摘要文本,这表示页面重新开始的数量(显示4个结果中的1-4个.)

那可能吗?谢谢

对不起我的英语不好

yii yii-events yii-components

1
推荐指数
1
解决办法
5148
查看次数

改变Yii中关系的条件

我面临一个小问题,我需要你的帮助.我想加入两个表,但是加入的其他条件不仅仅是外键.我已经尝试设置条件参数,但它在我的查询中创建了一个WHERE,这将导致我的主表将被过滤而不是已加入的主表.

'dokumentumok' => array(self::HAS_MANY, 'Fileuploader', 'foreign_id', 'joinType' => 'LEFT JOIN', 'condition' => "(dokumentumok.fileuploader_type='nyomtatvany') AND dokumentumok.fileuploader_deleted = 0"),
Run Code Online (Sandbox Code Playgroud)

这将是条件 - >

'condition' => "(dokumentumok.fileuploader_type='nyomtatvany') AND dokumentumok.fileuploader_deleted = 0
Run Code Online (Sandbox Code Playgroud)

join has-many yii conditional-statements yii-relations

1
推荐指数
1
解决办法
5554
查看次数