草庐IT

yii2-codeception

全部标签

php - Yii:从一个表单中保存多个模型并检查现有记录

下面是我拥有的三个表之间的关系。现在,在通过user/create操作创建新用户时,表单接受用户表字段和单位名称的输入。这里的单位名称不是下拉列表(使用它不是一个选项),而是一个文本字段。如果在表格中输入的单位名称在单位表中不存在,我需要将其插入到单位表中,然后将关系/引用保存在user_unit表中。如果它存在我只是更新user_unit表。我可以通过在用户模型中声明unitname属性然后将其与表单相关联来使其正常工作,然后在Controller中我检查输入的单位名称是否存在于单位表中。如果它存在,那么我更新UserUnit模型,如果它不存在,那么我创建该单元,然后更新UserUn

php - YII2 - 如何从表单中获取字段值以进行搜索

我是Yii2和MVC的新手,所以认为问题的答案很简单,但没有从文档和教程中找到答案。因此,我需要从数据库表中选择一条具有相应id的记录。所以,这里是我要遵循的步骤:1)我为相应的表创建了一个带有CRUD生成器的模型(CustomerReport),并将其添加到View中:useapp\models\CustomerReport;2)在View页面上,我用测试了它$customer_data=CustomerReport::findone(['id'=>2]);这对我来说没问题3)我在View上添加了一个搜索表单:'customer-report']);?>field($model,'i

mysql - 在 windows7 的 yii2 中安装 mongodb 失败

我刚刚在app\common\config\main.php中添加了这段代码dirname(dirname(__DIR__)).'/vendor','components'=>['cache'=>['class'=>'yii\caching\FileCache',],],'modules'=>[//...'gii1'=>['class'=>'yii\gii\Module','generators'=>['mongoDbModel'=>['class'=>'yii\mongodb\gii\model\Generator']],],],];但是当我运行phpcomposer.pharreq

php - Yii 中的更新操作是如何工作的

我是Yii框架的新手。我创建了一个表TblUser。现在,我有三列username、password和email。我在Yii中使用CRUD操作。成功连接到数据库。我也能够在表中创建新记录。现在数据库中的条目显示为+----+----------+----------+--------------------+|id|username|password|email|+----+----------+----------+--------------------+|1|test1|pass1|test1@example.com||2|test2|pass2|test2@example.co

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`),