标签: yii

子查询ActiveRecord Yii

是否可以在Yii中的ActiveRecord中进行子查询?

我有这样的查询:

select * from table1 where table1.field1 in (select table2.field2 from table2)

我目前正在使用以下代码:

object1::model()->findAll(array('condition'=>'t.field1 in (select table2.field2 from table2)'))

[编辑]
我想知道是否有一种方法来构造子查询而不使用SQL,并且不使用连接.

有什么解决方案吗?

并提前感谢.

php subquery yii yii-cactiverecord

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

Yii - 如何从Active Record中获取值数组

使用Yii,我如何从Active Record中获取数组.

说这样的话:

array('foo', 'bar', 'lala')

从这样的事情:

MyTable::model()->findall()
Run Code Online (Sandbox Code Playgroud)

arrays activerecord yii

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

Yii不是自动包括jquery

我和Yii&Jquery有一个奇怪的问题:

当我打开一个在localhost上使用ajax/jquery的页面时,Yii会自动添加资产包含对页面的调用:

<link rel="stylesheet" type="text/css" href="/PATH/assets/f72b359d/style.css" />
<script type="text/javascript" src="/PATH/assets/2e442e1a/jquery.js"></script>
<script type="text/javascript" src="/PATH/assets/2e442e1a/jquery.cookie.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,当我在服务器上运行相同的代码时,Yii没有这样做,没有Jquery可用.

如果有人能指导解决问题,我会很感激.

php jquery yii

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

来自DataProvider的Yii分页变量

我需要在控制器操作中使用某些分页变量.

如:

1.当前页码

2.当前页面偏移量

3.显示总记录

即显示2005年的31至40条记录

我尝试了以下方法:

$dataProvider = NodesTerms::getNodesDataFromTerms($nodeId) ;     
  $pagination = $dataProvider->getPagination();
  var_dump($pagination->getPageCount());
  //var_dump($pagination->currentPage);
Run Code Online (Sandbox Code Playgroud)

我可以得到分页对象,但零(0)$pagination->currentPage$pagination->offset等等....

我需要这些信息来动态生成元页面titledescription页面列表的操作,例如pagetitle:第3页,共10页,用于American Recipes ...

感谢任何帮助.

yii

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

获取YII中的所有"页面"?

我正在尝试创建自己的xml站点地图.一切都已完成,除了我认为最容易的部分.如何获得网站上所有页面的列表?我在/ site文件夹和其他一些文件夹中有很多视图.有没有办法明确请求他们的URL或可能通过控制器?

我不想使用扩展名

php sitemap yii

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

Yii - 使用Ajax验证

我正在尝试在表单中启用ajax验证,我已经在表单中添加了正确的参数,但它不起作用,这是我的代码:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'user-form',
    'enableAjaxValidation'=>true,
    'htmlOptions' => array(
            'enctype' => 'multipart/form-data',
            'enableClientValidation'=>true
    ),
)); ?>
Run Code Online (Sandbox Code Playgroud)

请指教.

ajax yii

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

Yii客户端验证不适用于加载ajax的表单

当我用正常请求(非ajax)打开页面时,一切正常.但是当我用ajax加载该表单时,该表单中的客户端验证不起作用.

表单生成器是经典的gii生成的东西:

$form = $this->beginWidget('CActiveForm', array(
    'id'=>'cat-form',
    'enableAjaxValidation'=>true,
    'action' => ...,
    'clientOptions'=>array('validateOnSubmit'=>true),
    )
);
// - form inputs go here -
$this->endWidget();
Run Code Online (Sandbox Code Playgroud)

Ajax加载是这样完成的:

$.get(page, function(formHtml) {
    $('#content').html(formHtml);
});
Run Code Online (Sandbox Code Playgroud)

我不得不调用renderPartial processOutput = true,以便输出javascript.小部件生成的JavaScript看起来像这样:

$('#cat-form').yiiactiveform({'validateOnSubmit':true,'attributes':[...]});
Run Code Online (Sandbox Code Playgroud)

我已经将问题追溯到这样一个事实:当$('#cat-form')选择完成时,返回的jQuery对象是空的,即还没有表单.

如何在Yii中为ajax加载的内容正确添加客户端验证?


我很蠢,因为这个而浪费了4个小时:

var slider = $('.slider');
var slide = $('<div class="slide">').html(resp); // facepalm

// few lines later..
slider.append(slide);
Run Code Online (Sandbox Code Playgroud)

因此,当表单仅在临时元素中时,脚本已执行,该元素尚未附加到页面.因此,$('#form')没有找到任何东西.

javascript php ajax jquery yii

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

复制AR记录并将其重新插入数据库

我有一个AR模型,我试图复制,但只需要手动更改外键.

$_POST['competition_id'] = 99;
$prizes = CompetitionPrizes::model()->findAll('competition_id =:competition_id',array(':competition_id'=> $_POST['competition_id']));
Run Code Online (Sandbox Code Playgroud)

此查询基本上查询prizes表并获取特定竞争的所有行.对于奖品对象,我想基本上重新插入/复制相同的信息,除了我想手动设置的竞争ID.

我为AR对象做了类似的事情,基本上只有一行并且运行良好,但是在这种情况下,竞争可以有多个奖项,而相同的代码则不会.

// My existing code for duplication process
$obj = Competitions::model()->find('competition_id=:competition_id', array(':competition_id' => $post['competition_id']));
$clone = clone $obj;
$clone->isNewRecord = true;
unset($clone->competition_id); // i want to remove this so it is auto inserted instead via the db
$clone->save();
Run Code Online (Sandbox Code Playgroud)

这很有效 - 如何在奖品的'集合'上修改它,并在设置我自己的'competition_id'值时将其复制到数据库中.

注意 - 我是Yii的新手,所以如果我有任何明显的错误/不良做法,请告诉我

php database activerecord yii

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

yii2:勾选复选框

我正在使用Yii2框架,我想生成这样的HTML代码

<input type="checkbox" id="queue-order" name="Queue[order]" value="1" checked>
Run Code Online (Sandbox Code Playgroud)

在使用ActiveForm的视图中.

我试过了

echo $form->field($model, 'order')
          ->checkBox(['label' => ..., 'uncheck' => null, 'checked' => true]); 
Run Code Online (Sandbox Code Playgroud)

以及

echo $form->field($model, 'order')
          ->checkBox(['label' => ..., 'uncheck' => null, 'checked' => 'checked']); 
Run Code Online (Sandbox Code Playgroud)

但是生成的html代码中没有出现所需的字符串"checked".

奇怪的是,如果我用"选中"代替"选中"

echo $form->field($model, 'order')
          ->checkBox(['label' => ..., 'uncheck' => null, 'selected' => true]); 
Run Code Online (Sandbox Code Playgroud)

然后生成的html代码包含属性"selected":

<input type="checkbox" id="queue-order" name="Queue[order]" value="1" selected>
Run Code Online (Sandbox Code Playgroud)

那么,如何为具有"已检查"属性的复选框生成html代码?

html php yii active-form

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

如何将Yii 1.x升级到Yii 2.0

如何将Yii 1.x版本升级到Yii 2.0最新版本?我正在使用ubuntu OS,Process将我的旧Yii更新为新的Yii发行版2.0?

yii yii-extensions yii2 yii2-advanced-app yii2-basic-app

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