有人可以解释一下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,我总是得到相同的结果 - 即表中的所有条目.我在这里遗漏了一些我不明白的东西.
任何帮助将非常感激.谢谢.
继此之后:
Yii2 SearchModel中的search()如何工作?
我希望能够过滤一GridView列关系数据.这就是我的意思:
我有两张桌子,TableA和TableB.两者都有使用Gii生成的相应模型.TableA有一个值的外键TableB,如下所示:
TableA
attrA1, attrA2, attrA3, TableB.attrB1
TableB
attrB1, attrB2, attrB3
Run Code Online (Sandbox Code Playgroud)
attrA1和attrB1是其相应表的主键.
现在,我有一个Yii2 GridView的attrA2,attrA3和attrB2.我有一个工作过滤器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) 我无法弄清楚如何从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)
但我似乎无处可寻.
有没有人知道如何做到这一点?
谢谢.
我想创建一个没有数据库的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) 我在配置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问题而不是作曲家问题,但我不确定.有人有任何想法吗?提前致谢.
// 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)
{
"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) 我有一些像这样的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.但这不会发生.我认为这是一个简单的想法,但我必须遗漏一些东西.
有任何想法吗?
谢谢.
我想将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)
谢谢.
我使用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。
我在使用以下内容显示'name'的值时遇到问题:
for (var name in array) {
var hoverIn = function() {
alert(name);
};
var hoverOut = function() {
};
thing.hover(hoverIn, hoverOut);
}
Run Code Online (Sandbox Code Playgroud)
我得到的是一个警告窗口,其中包含姓名的最后一个值.显然,我做错了,我怀疑这是一个简单的修复.有人可以帮忙吗?
谢谢.