小编Mr *_*bri的帖子

Yii2 SearchModel中的search()如何工作?

有人可以解释一下searchYii2中的方法是如何SearchModel工作的吗?我用Gii生成它.这里是:

public function search($params){
    $query = MyModel::find();
    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    if (!($this->load($params) && $this->validate())) {
        return $dataProvider;
    }

    $this->addCondition($query, 'att1');
    $this->addCondition($query, 'att1', true);
    $this->addCondition($query, 'att2');
    $this->addCondition($query, 'att2', true);

    return $dataProvider;
}
Run Code Online (Sandbox Code Playgroud)

这就是我所说的:

$search = new MyModelSearch();
$myModels = $search->search(['att3' => '3']);
Run Code Online (Sandbox Code Playgroud)

无论我在调用中使用什么属性search,我总是得到相同的结果 - 即表中的所有条目.我在这里遗漏了一些我不明白的东西.

任何帮助将非常感激.谢谢.

php yii yii2

28
推荐指数
1
解决办法
4万
查看次数

PHP,Yii2 GridView过滤关系值

继此之后:

Yii2 SearchModel中的search()如何工作?

我希望能够过滤一GridView列关系数据.这就是我的意思:

我有两张桌子,TableATableB.两者都有使用Gii生成的相应模型.TableA有一个值的外键TableB,如下所示:

TableA
attrA1, attrA2, attrA3, TableB.attrB1

TableB
attrB1, attrB2, attrB3
Run Code Online (Sandbox Code Playgroud)

attrA1和attrB1是其相应表的主键.

现在,我有一个Yii2 GridViewattrA2,attrA3attrB2.我有一个工作过滤器attrA2,attrA3所以我可以搜索列值.我也对这两个列进行了工作排序 - 只需单击列标题即可.我希望能够添加此过滤和排序attrB2.

我的TableASearch模型看起来像这样:

public function search($params){
    $query = TableA::find();
    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    if (!($this->load($params) && $this->validate())) {
        return $dataProvider;
    }

    $this->addCondition($query, 'attrA2');
    $this->addCondition($query, 'attrA2', true);
    $this->addCondition($query, 'attrA3');
    $this->addCondition($query, 'attrA3', true);

    return $dataProvider;
} …
Run Code Online (Sandbox Code Playgroud)

php entity-relationship yii2

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

ckeditor内联保存/提交

我无法弄清楚如何从CKEditor实例中获取已编辑的数据并将其发布到URL.

我在看这个:

http://nightly.ckeditor.com/3995/samples/inlineall.html

我无法弄清楚如何保存更改.我可以将要编辑的新编辑的数据与要编辑的元素的ID一起发布到PHP吗?

与此类似:

editor.on('configLoaded', function(){
    // do some stuff
});
Run Code Online (Sandbox Code Playgroud)

我希望我能做到这样的事情:

editor.on('clickAway', function(e){
    id = e.id();
    // do some ajax stuff
});
Run Code Online (Sandbox Code Playgroud)

但我似乎无处可寻.

有没有人知道如何做到这一点?

谢谢.

javascript ajax ckeditor

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

如何在没有数据库的情况下创建Yii2模型

我想创建一个没有数据库的yii2模型.相反,数据是动态生成的,而不是存储的,只是作为json显示给用户.基本上,我只想得到一个非数据库模型工作的简单,基本的例子,但我找不到任何文档.

那么如何在没有数据库的情况下编写模型呢?我已经扩展,\yii\base\Model但我收到以下错误消息:

<?xml version="1.0" encoding="UTF-8"?>
<response>
   <name>PHP Fatal Error</name>
   <message>Call to undefined method my\app\models\Test::find()</message>
   <code>1</code>
   <type>yii\base\ErrorException</type>
   <file>/my/app/vendor/yiisoft/yii2/rest/IndexAction.php</file>
   <line>61</line>
   <stack-trace>
      <item>#0 [internal function]: yii\base\ErrorHandler->handleFatalError()</item>
      <item>#1 {main}</item>
   </stack-trace>
</response>
Run Code Online (Sandbox Code Playgroud)

要实现find(),我必须返回一个数据库查询对象.

我的模型完全是空白的,我只是想找一个简单的例子来理解主体.

<?php
namespace my\app\models;

class Test extends \yii\base\Model{
}
Run Code Online (Sandbox Code Playgroud)

php yii2

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

PHP Composer - 设置供应商目录

我在配置Yii2应用程序的供应商路径时遇到问题.我在从Yii2基本应用程序模板中获取的composer.json文件中添加了几行.我想要做的就是更改供应商资产的位置.

以下是我对文件所做的更改,但是我收到此错误:

The file or directory to be published does not exist: /path/to/app/vendor/bower/jquery/dist
Run Code Online (Sandbox Code Playgroud)

我期待将特定资产发布到:

/path/to/vendors/bower/jquery/dist
Run Code Online (Sandbox Code Playgroud)

无论我做什么,我仍然会得到错误信息.我怀疑这是一个Yii2问题而不是作曲家问题,但我不确定.有人有任何想法吗?提前致谢.

文件...

的index.php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require('/path/to/vendors/autoload.php');
require('/path/to/vendors/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../config/web.php');

(new yii\web\Application($config))->run();
Run Code Online (Sandbox Code Playgroud)

composer.json

{
    "name": "yiisoft/yii2-app-basic",
    "description": "Yii 2 Basic Project Template",
    "keywords": ["yii2", "framework", "basic", "project template"],
    "homepage": "http://www.yiiframework.com/",
    "type": "project",
    "license": "BSD-3-Clause",
    "support": {
        ...
    },
    "minimum-stability": "dev",
    "config": {
        "process-timeout": 1800,
        "vendor-dir": …
Run Code Online (Sandbox Code Playgroud)

php composer-php bower yii2

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

jquery将监听器添加到附加内容

我有一些像这样的jQuery代码:

$("#add").click(function(event){
    $("#list").append('<a class="remove" href="#">x</a>');

    return false;
});

$('.remove').live('click', function(){
    alert("123");
});
Run Code Online (Sandbox Code Playgroud)

如果单击class = remove,我希望它提醒123.但这不会发生.我认为这是一个简单的想法,但我必须遗漏一些东西.

有任何想法吗?

谢谢.

javascript jquery jquery-append

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

使用GNU日期转换git日期

我想将git日期转换为Ymd的格式.这是我的尝试:

$>>git log -1 --format="%cd" | xargs date Y%m%d
Run Code Online (Sandbox Code Playgroud)

但是这会返回此错误:

date: extra operand ‘Thu’
Try 'date --help' for more information.
Run Code Online (Sandbox Code Playgroud)

任何想法如何转换git日期如下:

Thu Sep 19 17:03:12 2013 +0100
Run Code Online (Sandbox Code Playgroud)

对于这样的事情:

20130919
Run Code Online (Sandbox Code Playgroud)

谢谢.

git bash date xargs

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

使用 Yii2 REST 客户端使用 Yii2 REST API

我使用Yii2 文档创建了一个 REST API 。它似乎工作正常,因为我可以像这样使用 curl:

curl -i "https://example.com/api/v3/user" \
    -H "Accept:application/json"  \
    -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Run Code Online (Sandbox Code Playgroud)

我现在希望能够从另一个 Yii2 站点使用这些数据。我正在尝试使用 Yii2 REST API 客户端。因为它是基本的副本,我不会张贴整个代码的Facebook客户端yiisoft / yii2-authclient

有没有人知道帮助我修改它以使用我的 API 的指南?在第一种情况下,我用什么把挣扎$authUrl$tokenUrl

php api rest rest-client yii2

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

javascript将变量传递给函数内的函数

我在使用以下内容显示'name'的值时遇到问题:

   for (var name in array) {
        var hoverIn = function() {
                  alert(name);
        };

        var hoverOut = function() {
        };

        thing.hover(hoverIn, hoverOut);

   }
Run Code Online (Sandbox Code Playgroud)

我得到的是一个警告窗口,其中包含姓名的最后一个值.显然,我做错了,我怀疑这是一个简单的修复.有人可以帮忙吗?

谢谢.

javascript jquery

0
推荐指数
1
解决办法
204
查看次数