草庐IT

yii2-codeception

全部标签

php - 使用 Yii Active Record 查找一列的最大值

如何通过YiiActiveRecord找到数据库中某一列的最大值?我可以通过纯sql和createCommand方法来完成,但我想通过ActiveRecord和CDbCriteria类来完成。有什么办法吗? 最佳答案 您需要按如下方式更改选择标准。$model=newModel;$criteria=newCDbCriteria;$criteria->select='max(column)ASmaxColumn';$row=$model->model()->find($criteria);$somevariable=$row['max

php - Yii2 显示每个循环使用的数据

我使用yii2创建了一个模型,并使用gii创建了CRUD。我想在我的View中使用foreach或while循环以下列格式显示数据对于数据库表中的每一行echo("addMarker($lat_field,$lon_field);\n");我有一个使用以下Controller操作呈现的索引页面。publicfunctionactionIndex(){$this->layout='directory';$searchModel=newShopDirectorySearch();$dataProvider=$searchModel->search(Yii::$app->request->q

php - Yii 应用程序如何保护连接字符串?

我正在和一些friend在共享主机上托管一个Yii应用程序,并将数据库保存在私有(private)MySQL服务器中。如您所知,另一个主机所有者(我的friend等)可以非常容易地在protected\config\main.php中找到数据库信息:'db'=>array('connectionString'=>'mysql:host=211.113.2.45;dbname=FamilyBook','emulatePrepare'=>true,'username'=>root,'password'=>'xcute445','charset'=>'utf8',),有什么解决方案可以隐藏连

php - Yii2 分步指南从 MySQL 中的表登录

我开始迈出Yii2的第一步。到目前为止,我已经能够编写应用程序并将数据库中的表连接到它,就像我在Yii1中学到的那样。表是contacts,我创建View中的表单将数据毫无问题地发送到数据库。问题是我只能在Yii2内置的静态用户模型中使用Admin/Admin或demo/demo登录。在Yii1.xx中,我设法使用COMPONENTS/useridentity从数据库中的表验证登录,就像这样(我使用了一个名为utilizador的表,其中包含字段id,utilizador和password):classUserIdentityextendsCUserIdentity{publicfun

php - Yii2 从两个表中选择数据

我如何从关系表中选择列?$orders=Category::find()->joinWith('posts')->all();我试过了$orders=Category::find()->select('post.*')->joinWith('posts')->all()等,但我得到错误:获取未知属性:common\models\Category::id_postExcecuteSqlstatment:SELECT`post`.*FROM`category`LEFTJOIN`post`ON`category`.`id_category`=`post`.`id_categoryFK`但我不

php - Yii2 viaTable 连接条件

是否可以在viaTable的join部分设置条件?目前我得到了这个:return$this->hasMany(User::className(),['id'=>'id_user'])->from(User::tableName())->viaTable(RoomActiveUser::tableName(),['id_room'=>'id'],function($query){return$query->andWhere(['id_role'=>RoleHelper::getConsultantRole()->id]);});但这不是一个好的解决方案。为什么?当您进行左连接时,id_r

mysql - Yii 框架——InnoDB 与 MyISAM

我有一个问题:我用Yii和InnoDB构建了一个大型应用程序并遇到了问题,插入/更新持续时间真的很长,这是我的php报告:创新者:admin用户更新55.247464895248秒ekuskov用户更新13.282548904419秒doriwall用户更新0.002094030380249秒MyISAM:admin用户更新7.8317859172821秒ekuskov用户更新1.6304929256439秒doriwall用户更新0.0020859241485596秒谁能提出一些解决方案来加快插入/更新速度?编辑------------------------------------

php - Yii - 使用高级搜索对自定义 CGridView 进行查询操作

因此,我对CGridView进行了扩展,以包含根据我的组织需求量身定制的高级搜索功能。过滤器-允许您显示/隐藏表格中的列,您还可以通过将小拖动图标拖动到每个项目的左侧来重新排序列。排序-允许选择多个列,指定升序或降序。搜索-选择您的列并插入搜索参数。针对所选列的数据类型定制的运算符。版本1可以运行,尽管速度很慢。基本上,我亲自参与了CGridView的内部工作,在那里我从DataProvider获取结果并在呈现表内容之前用PHP进行搜索和排序。现在正在编写版本2,我的目标是专注于巧妙的CDbCriteria创建,让MySQL完成繁重的工作,以便它运行得更快。在处理单个数据库表时,实现很

php - 如何在 Yii2 Active Record 中为关系模型使用 JOIN?

我有2个表,分别是Books和Reviews。Books表与Reviews是一对多的关系。我想搜索书籍并按评论对它们进行排序。例如,如果有10本书可用并且书在Reviews中有评论,那么我想通过使用WHERE子句找到所有书并计算那里的评论,然后根据评论编号订购所有书。我的SQL查询如下:Books::find()->where(['and',['like','books.bookName',$bookName],['like','books.status','Enabled']])->joinWith(['reviews'=>function($q){$q->select(['COUN

php - IS NOT NULL 在 Yii Active Record 中不起作用

我正在尝试这样的事情:publicfunctionsearch(){$criteria=newCDbCriteria;$criteria->compare('user_details_id',$this->user_details_id);$criteria->compare('user_type_id',$this->user_type_id);$criteria->compare('customer_basics_id',$this->customer_basics_id);$criteria->compare('user_address_id',$this->user_addre