我有一个包含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脚本也可以完成任务.
我有一个非常复杂的查询使用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) 我试着去添加一个新行\n来CJSON::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) 在尝试使用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 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) 我使用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.但我怎么能避免呢?
我想在我的视图中包含JavaScript文件.
我想将它们一起渲染而不是脚本文件(registerScriptFile).
我怎样才能做到这一点?
我正在尝试使用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) 我在Yii中使用CGridView来创建表.
我想用分页显示我的表格,但隐藏在顶部的摘要文本,这表示页面重新开始的数量(显示4个结果中的1-4个.)
那可能吗?谢谢
对不起我的英语不好
我面临一个小问题,我需要你的帮助.我想加入两个表,但是加入的其他条件不仅仅是外键.我已经尝试设置条件参数,但它在我的查询中创建了一个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) yii ×10
php ×7
mysql ×3
csv ×1
database ×1
forms ×1
has-many ×1
include ×1
javascript ×1
join ×1
migration ×1
radio-button ×1
yii-events ×1