草庐IT

yii2-codeception

全部标签

mysql - Yii2:防止 ActiveRecord 属性中的空字符串

防止将空字符串插入MySQL的InnoDB表的字段的最佳方法是什么?允许的值为包含多于零个字符或NULL的字符串。我问这个是因为ActiveRecord模型对象经常得到loadedView的表单数据不知道,因此不会发送NULL值。在这种情况下,我更希望存储NULL而不是空字符串。我应该定义规则吗?我应该实现二传手吗?使用触发器? 最佳答案 你应该简单地使用default验证器,将此规则添加到您的模型中:publicfunctionrules(){return[//...['attribute','default','value'=>

php - 在 Yii 框架中配置数据库连接

在Yii框架的main.php文件中,有一些配置选项。mysql是这样设置的'db'=>array('connectionString'=>'mysql:host=localhost;dbname=testdrive','emulatePrepare'=>true,'username'=>'root','password'=>'root','charset'=>'utf8',),在我的MAMP系统上,我必须将端口指定为8889。我该如何将其添加到其中?谢谢 最佳答案 我这样添加了端口,它似乎可以工作'db'=>array('conn

php - 更新帖子时检查 Yii2 中的复选框列表?

我想在帖子更新时检查Yii2CheckboxList我的选项列表在下面提到field($category,'title')->checkboxList([1=>'Latestnews','2'=>'UnitPerformance','3'=>'LatestTechnology'])->label(FALSE);?>我想在更新时检查一些在创建帖子时选择的项目如最新消息。请帮助我 最佳答案 使用示例代码行。$list=[1=>'Latestnews','2'=>'UnitPerformance','3'=>'LatestTechnolo

php - Yii INSERT ... 重复更新

我正在做一个Yii项目。在Yii模型上执行save()时如何使用MySQL(http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html)的ONDUPLICATE功能?我的MySQL如下:CREATETABLE`ck_space_calendar_cache`(`space_id`int(11)NOTNULL,`day`dateNOTNULL,`available`tinyint(1)unsignedNOTNULLDEFAULT'0',`price`decimal(12,2)DEFAULTNULL,`offer`varc

php - 在 Yii 中更新查询

我在Yii中有一个要求,我必须根据某些条件更新一个表。我必须使用new_val=previous_value+new_val更新该列。但是代码没有按预期工作。我试过的代码是$update=Yii::app()->db->createCommand()->update('tbl_post',array('star'=>('star'+1),'total'=>('total'+$ratingAjax)),'id=:id',array(':id'=>$post_id));在正常查询中,查询将是UPDATEtbl_postsetstar=star+1,total=total+'$ratingA

mysql - Yii2 按最大日期选择?

假设我在yii2中有表A及其事件记录,将具有最大创建日期的记录加载到模型的最佳方法是什么。这是查询:select*fromAwherecreated_date=(selectmax(created_date)fromA)现在我首先获取最大日期,然后在另一个数据库访问中使用它,即:$max=A::find()->select("created_date)")->max();$model=A::find()->where("created_date=:date",[":date"=>$max])->one();我确信这可以通过一次访问数据库来完成,但我不知道如何做。请帮忙。

php - SQLSTATE[HY000] [2002] yii2 中没有那个文件或目录

我使用ubuntu16.04。PHP版本7.0.4-7ubuntu2。Apache/2.4.18(Ubuntu).PHP扩展名:mysqli(在phpmyadmin中编写)。我将我的ubuntu从15.10升级到16.04并且我有这个错误:我的项目在我的服务器中正确运行,但我无法在我的操作系统中运行:DatabaseException–yii\db\ExceptionSQLSTATE[HY000][2002]Nosuchfileordirectory↵Causedby:PDOExceptionSQLSTATE[HY000][2002]Nosuchfileordirectoryin/va

php - 在 Yii2 中使用 MySQL "IN"语法绑定(bind)参数的正确方法?

好的,我正在使用Yii2并且我熟悉在使用mysql查询时准备/绑定(bind)数据,例如:$sql=$this->db->createCommand("UPDATEsome_tableSETsomething='foo'WHEREsome_id=:some_id");$sql->bindValue(':some_id',$some_id);但是当值可能包含多个值时,例如使用MySQL语法IN时怎么办?例如:$sql=$this->db->createCommand("UPDATEsome_tableSETsomething='foo'WHEREsome_idIN(:parents)")

mysql - 带有限制和分页的 yii CActiveDataProvider

我正在尝试从表中选择几行并将其呈现在多个页面中(分页)。这是模型中的一段代码:returnnewCActiveDataProvider('Downloads',array('criteria'=>array('select'=>'download_id,title,thumb_ext','order'=>'download_idDESC','limit'=>$count,),'pagination'=>array('pageSize'=>5,),));在View中我使用CGridView显示它:$this->widget('zii.widgets.grid.CGridView',arr

php - yii2 : make checkbox to be checked

我正在使用Yii2框架,我想生成这样的html代码在使用ActiveForm的View中。我试过了echo$form->field($model,'order')->checkBox(['label'=>...,'uncheck'=>null,'checked'=>true]);还有echo$form->field($model,'order')->checkBox(['label'=>...,'uncheck'=>null,'checked'=>'checked']);但是生成的html代码中没有出现所需的字符串“checked”。奇怪的是,如果我用“selected”替换“chec