小编ank*_*itr的帖子

如何在Yii2 gridview中连接两个表并获取值

我正在使用Yii2 gridview小部件来显示数据.

我正在使用两个名为messagemessage_trigger的表.

消息表列中object_model,Object_id.

message_trigger中,列是object_id,object_name.

网格从表消息中获取值.所以网格字段是Object_model,Object_id.

现在我的问题是我需要表现出Object_name从表格message_trigger基础上,object_id从表中的消息.

在我的形式中,我使用了这样的网格

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'object_model',
        'object_id',
        ['class' => 'yii\grid\ActionColumn', 'template' => '{view} {update} {delete} '],
    ],
]); ?>
Run Code Online (Sandbox Code Playgroud)

在我使用过的模型中

public function search($params){
    $query = AlertTrigger::find()->where(['alert_id'=>$params['id']])->andWhere(['!=','status',2]);
    $dataProvider = new ActiveDataProvider([
        'query' => …
Run Code Online (Sandbox Code Playgroud)

gridview yii2 yii2-model

8
推荐指数
1
解决办法
2万
查看次数

在Yii2中动态添加输入字段

我在Yii2中遇到了一些问题.我需要创建一个包含三个下拉菜单的表单,该菜单询问用户一周中哪些时间最适合他或她.第一个菜单是一周中的几天,接下来的两个菜单是开始和结束时间.

但我的项目比这更雄心勃勃.我还需要允许用户指定任何时间配置,因此必须扩展表单并使其动态化,允许用户向表单添加更多下拉菜单以指定更多次.

我已经尝试了很多解决方案,但问题似乎在于用户创建的输入字段.我相信在Yii 1中有一种方法可以做到这一点,但Yii 2显然是这样的代码检修,旧的解决方法很少有用.我已经研究了许多扩展,特别是Krajee的扩展,虽然它们中的许多非常漂亮且用户友好,但它们不提供动态字段创建.我自己尝试了一些黑客,但没有任何工作,我想知道是否有办法在Yii 2中创建一个具有动态数量的输入字段的表单.如果没有,我很想写一些简单的Javascript和Php以外的Yii来完成工作,但我想留在框架内.

javascript php yii2

7
推荐指数
1
解决办法
8474
查看次数

可以在localhost上使用swiftMailer发送电子邮件吗?

我目前没有收到使用以下配置的电子邮件,并且想知道是否与我的设置有关可能遗漏了某些内容或者它在MAMP localhost上无法正常工作?

common-local.php在common config目录下

    'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        'viewPath' => '@common/mail',
        // send all mails to a file by default. You have to set
        // 'useFileTransport' to false and configure a transport
        // for the mailer to send real emails.
        'useFileTransport' => true,
    ],
Run Code Online (Sandbox Code Playgroud)

然后发送电子邮件(显示成功消息)

public function submitreview($email)
{
    //return Yii::$app->mailer->compose(['html' => '@app/mail-templates/submitreview'])
    return Yii::$app->mailer->compose()
        ->setTo($email)
        ->setFrom([$this->email => $this->name])
        ->setSubject($this->title)
        ->setTextBody($this->description)
        ->attachContent($this->file)
        ->send();
}
Run Code Online (Sandbox Code Playgroud)

php swiftmailer yii2

6
推荐指数
1
解决办法
7982
查看次数

如何使用Yii 2构建像`select ... where id%2 = 1`这样的查询?

当然,我可以Yii::$app->db->createCommand($sql)->query(),但如果我想用一个ActiveRecord::find()->where($conditions)来完成这项工作呢?

activerecord yii2

6
推荐指数
2
解决办法
1331
查看次数

如何为Yii2-basic-template创建REST API

我想为yii2基本模板创建一个REST API.我按照以下链接.

我创建了一个名为users的控制台,名为UserController

<?php
namespace app\controllers;

use yii\rest\ActiveController;

class UserController extends ActiveController
{
    public $modelClass = 'app\models\User';
}
?>
Run Code Online (Sandbox Code Playgroud)

并在网络上

   'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        ['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
    ],
],

        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '4534',
            'parsers' => [
        'application/json' => 'yii\web\JsonParser', …
Run Code Online (Sandbox Code Playgroud)

rest yii2 yii2-basic-app

6
推荐指数
2
解决办法
1万
查看次数

获取所有类别和父类别中的产品都不包含关键字

我正在尝试获取关键字匹配的那些产品的所有类别及其数量(该类别中的产品数量).我试过的查询没有给我正确的结果.此外,我希望父类别直到1级和他们的计数.

例如,我正在尝试使用关键字手表,那么类别"手表"应该有一些计数.父类别"附件"及其后代类别的总和也计算在内.

我的表结构是:

tblProducts:产品分为5类,fldCategoryId1,fldCategoryId2,fldCategoryId3,fldCategoryId4和fldCategoryId5.fldProductStatus应为'A'

+-----------------------------+-------------------+
| Field                       | Type              |
+-----------------------------+-------------------+
| fldUniqueId                 | bigint(20)        |
| fldCategoryId1              | bigint(20)        |
| fldCategoryId2              | bigint(20)        |
| fldCategoryId3              | bigint(20)        |
| fldCategoryId4              | bigint(20)        |
| fldCategoryId5              | bigint(20)        |
| fldProductStatus            | enum('A','P','D') |
| fldForSearch                | longtext          |
+-----------------------------+-------------------+
Run Code Online (Sandbox Code Playgroud)

tblCategory:

+------------------------------+-----------------------+
| Field                        | Type                  |
+------------------------------+-----------------------+
| fldCategoryId                | bigint(20)            |
| fldCategoryName              | varchar(128)          |
| fldCategoryParent            | int(11)               |
| fldCategoryLevel             | enum('0','1','2','3') …
Run Code Online (Sandbox Code Playgroud)

mysql sql

6
推荐指数
1
解决办法
224
查看次数

在Karma-mocha中没有定义chai

我正在使用mocha-phantomjs配置成功运行我的测试用例.现在我正在使用Karma启动器运行这些测试.但我得到了这个问题Chai is not defined.

这是我的配置文件.

 module.exports = function(config) {
  config.set({
    client: {
        mocha: {
            ui: 'tdd'
        }
    },
    basePath: '',
    frameworks: ['mocha'],
    files: [
      'web/js/*.js',
      'test/lib/*.js',
      'node_modules/chai/chai.js'  //added this on suggestion of the answer in stackoverflow
    ],
    exclude: [
    ],
    preprocessors: {
    },
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Firefox'],
    singleRun: false,
  });
};
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我研究过它,发现这个链接,

javascript unit-testing karma-runner karma-mocha

5
推荐指数
1
解决办法
2366
查看次数

PHP 中的广度优先搜索

我的表结构是:

id    name           parent   lft  rgt
1     abc              0       2    3
2     def              1       4    5
3     geh              1       6    7
4     ijk              2       8    9
5     lmn              2       10   11
Run Code Online (Sandbox Code Playgroud)

我正在做的是首先获取所有记录,然后使用深度优先搜索(DFS)为所有可能的孩子搜索树。

public function fetchRecursive($src_arr, $currentId, $parentFound = false)
{
    $cats = array();
    foreach ($src_arr as $row) {
        if ((!$parentFound && $row['id'] == $currentId) || $row['parent'] == $currentId) {
            $rowData = array();
            foreach ($row as $k => $v)
                $rowData[$k] = $v;
            $cats[] = $rowData;
            if ($row['parent'] == $currentId) {
                $cats …
Run Code Online (Sandbox Code Playgroud)

php tree binary-tree breadth-first-search

5
推荐指数
1
解决办法
3949
查看次数

Yii2中的线程数据

我正在寻找一个解决方案Active Record来获取单个查询中的分层数据.

我现在正在做的是首先获取所有数据,然后使用递归函数将数组转换为所需的数组.

$allUsers = User::find()
        ->asArray()
        ->all();
$arr = Yii::$app->TreeComponent->getUserChildren($allUsers, $userId, $userId);
Run Code Online (Sandbox Code Playgroud)

并在TreeComponent中

public function getUserChildren($src_arr, $currentId, $userId, $parentFound = false)
{
    $cats = array();
    foreach ($src_arr as $row) {
        if ($row['id'] == $userId) {
            $row['parent'] = "";
        }
        if ((!$parentFound && $row['id'] == $currentId) || $row['parent'] == $currentId) {
            $rowData = array();
            foreach ($row as $k => $v)
                $rowData[$k] = $v;
            $cats[] = $rowData;
            if ($row['parent'] == $currentId) {
                $cats = array_merge($cats, $this->fetchRecursive($src_arr, $row['id'], true));
            } …
Run Code Online (Sandbox Code Playgroud)

activerecord hierarchical-data yii2

5
推荐指数
1
解决办法
427
查看次数

yii2 + ActiveDataProvider中的联接查询

这是我的实际查询-

$dataProvider = new ActiveDataProvider([
            'query' => UserProfile::find()->with(['user'])
        ]);
Run Code Online (Sandbox Code Playgroud)

用户表中存在“ 状态 ”字段。所以我想按状态!= 0过滤数据,但是失败。

我试过了-

1个

$dataProvider = new ActiveDataProvider([
            'query' => UserProfile::find()->with(['user'])->where('user.status !=',0)
        ]);
Run Code Online (Sandbox Code Playgroud)

2

$dataProvider = new ActiveDataProvider([
            'query' => UserProfile::find()->with(['user'])->where('<>','user.status',0)
        ]);
Run Code Online (Sandbox Code Playgroud)

没有一个有效。请让我怎么可能?

php yii2 yii2-user

5
推荐指数
1
解决办法
4187
查看次数