草庐IT

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

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