草庐IT

php - yii2/mysql 中 now() 和 db\Expression 的奇怪行为

我无法让以下代码正常运行(删除过期记录)。简单测试代码:test_expire表定义:CREATETABLE`test_expire`(`id`int(11)NOTNULLAUTO_INCREMENT,`expire`timestampNOTNULL,PRIMARYKEY(`id`));代码:TestExpire::deleteAll();$record=newTestExpire();$record->expire=newExpression("NOW()+INTERVAL1MONTH");$record->save();$record=newTestExpire();$record

php - Yii 2 : virtual fields in ActiveRecords

我使用MySQL和Yii2。在数据库中存在表'Regions'withcolumn'coordinates'。此列的类型为点。在SQL中我可以这样写:"SELECTX(coordinates)asx,Y(coordinates)asy"和"INSERTINTORegionsSETcoordinates=PointFromText('POINT(".$x."".$y.")')".但我不知道如何制作ActiveRecord模型。我想要这个(数据库不变):$item=Regions::findOne(1);echo$item->x."".$item->y;$item->x=$new_x;$i

php - Yii2 按关系排序

我有以下数据库:day:idtask:idday_task:day_id,task_id,weight现在我想获取按重量排序的特定日期的所有任务。publicfunctiongetTasks(){return$this->hasMany(Task::className(),['id'=>'task_id'])->viaTable('day_task',['day_id'=>'id'],function($query){$query->orderBy(['weight'=>SORT_ASC]);});}导致:SELECT*FROM`day_task`WHERE`day_id`=2ORDE

mysql - WHERE in(子查询)子句 yii

我有一个像这样的mysql查询(SELECT`notification`.`id`,`notification`.`user_id`AS`user_id`,`notification`.`activity_type`,`notification`.`source_id`,`event`.`title`assourceName,concat_ws("",v.firstname,v.lastname)asActorNameFROM`notification`INNERJOIN`event`ONevent.id=notification.source_idINNERJOIN`user`asv

php - Yii2 model->created_date 是 future 的,不会在查询时返回

我已将Yii->application->configuration->timezone设置为UTC并让模型attributeBehaviors插入/更新时间戳自动使用PHP的time()方法。问题是,保存到数据库的时间戳是将来的,当我对今天的记录执行搜索查询时,如果它们是在10点到午夜之间创建的,则不会返回它们,因为时间戳是实际上是明天。我应该如何创建记录并执行搜索查询?谢谢。 最佳答案 看来您在PHP和MySQL时区之间存在差异。尝试执行以下操作:echodate_default_timezone_get()."";echoYi

php - Yii2 ActiveQuery join keep 返回不同的值

我有如下两张表暂停表:CREATETABLE`halte`(`id`int(11)NOTNULLAUTO_INCREMENT,`nama`varchar(255)NOTNULL,`lat`float(10,6)DEFAULTNULL,`lng`float(10,6)DEFAULTNULL,PRIMARYKEY(`id`))table停止:CREATETABLE`stops`(`id`int(11)NOTNULLAUTO_INCREMENT,`id_halte`int(11)DEFAULTNULL,`sequence`int(2)DEFAULTNULL,PRIMARYKEY(`id`),

mysql - 如何在 Yii 中添加日志记录?

我需要在我的Yii项目中存储一些事件:在特定时间创建一个用户帐户更新个人账户添加更多联系方式....那么,我应该在YiiLogging中使用什么数据结构?请给我推荐一个数据表(SQL)。谢谢! 最佳答案 哦,我不精通数据库设计,但我在这里找到了与您的问题相同的答案http://www.yiiframework.com/wiki/9/how-to-log-changes-of-activerecords/希望有用。 关于mysql-如何在Yii中添加日志记录?,我们在StackOverfl

php - 如何在 yii 的更新 View 中加载多个下拉列表中的选定值?

我是yii的新手。更新记录时,我无法在下拉列表中获取选定的值。我有多个用户电子邮件的下拉菜单。当添加它工作正常时,它允许我选择多个值并可以在数据库中插入所选值的逗号分隔的ID。但问题是当我想更新记录时它只显示1个选定的记录。这是我的代码:在我的查看文件中:dropDownList($model,'uid',$allUsers,array('class'=>'select2-meinput-sel_large','multiple'=>'true','options'=>array(''=>array('selected'=>true))));?>error($model,'uid')?

为什么YII2的国际化模块案件敏感?

我目前一直在涉足YII2的国际化模块,但遇到了一种好奇的行为,并且正在徘徊。为什么Yii::t('app','NEXT'),Yii::t('app','next')和Yii::t('app','Next')需要单独的翻译吗?我正在将翻译存储在数据库中。有什么办法可以使翻译不敏感?还是这样的特定原因是这样?看答案我相信这是一种预期的行为,因为在某些页面中打印“下一步”和“下一步”看起来肯定有所不同。因此,例如,如果我想在某个地方看到'келесiS'而不是'келел刷'的某个地方,而我只会收到较低的结果,那将首先让我感到困惑。无论如何,该功能更好的是对病例敏感,并且您可以使其不敏感(或使任何字

php - Yii2 viaTable 多变量

我正在尝试使用Yii2中名为user_comment_user的表上的viaTable查找一些UserComment>。但是我似乎无法正确插入我的variables/query。目前我设置了两个查询,以检查它们是否(自行)获得了正确的结果,它们确实做到了。这些是必须以某种方式合并为一个的两个查询:publicfunctionfindConversation($id){$query=$this->hasMany(UserComment::classname(),['id'=>'user_comment_id'])->viaTable('user_comment_user',['sende