标签: yii

yii组件:事件和行为?

我正在学习yii框架并阅读了他们的文档.

但我仍然不明白这些组件.这些是什么.他们谈论组件事件和行为.

有人可以为我解释这些条款,并给我一个组件,其事件和行为可能是什么的真实应用示例?

会有帮助的!

php yii

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

Yii ajaxSubmitButton()带有字段验证

我正在使用Yii ajaxSubmitButton()来提交表单.此外,我已将'enableAjaxValidation'参数设置为true以验证相应的文本框.

我能做什么:

  1. 在焦点离开时,以异步方式验证字段.
  2. 单击按钮时,异步调用服务器端方法.

问题是我不知道如何在单击提交按钮时执行字段验证,如果验证了模型,则在客户端执行部分渲染.

如果我覆盖ajaxSubmitButton中的'success'事件,我会得到部分渲染,但我无法维护模型验证.

有帮助吗?


编辑

谢谢回复,

已设置validateOnSubmit标志,如果未设置"成功"事件,则将正确验证模型.

当ajaxSubmitButton是这样的:

<?php echo CHtml::ajaxSubmitButton( 'Send',
                                        CHtml::normalizeUrl(array('site/ajaxIndexSubmit')),
                                        array(
                                        'error'=>'js:function(){
                                            alert(\'error\');
                                        }',
                                        'beforeSend'=>'js:function(){
                                            alert(\'beforeSend\');
                                        }',
                                        'success'=>'js:function(data){
                                            alert(\'success, data from server: \'+data);
                                        }',
                                        'complete'=>'js:function(){
                                            alert(\'complete\');
                                        }',
                                        //'update'=>'#where_to_put_the_response',
                                        )
                                    );
    ?>
Run Code Online (Sandbox Code Playgroud)

alert('success')将打印对应于模型验证的字符串.一旦我有了这个字符串,必须在客户端调用什么逻辑?

覆盖"成功"javascript处理程序的原因是从服务器接收部分呈现,与模型验证不同.我想要两件事:验证和部分渲染.

php ajax jquery yii

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

如何迭代Yii CActiveDataProvider对象?

如何迭代dataprovider对象?我想访问返回的每行的'name'字段并构建一个列表.你能帮我吗?

表/模型的表结构 categories

CREATE TABLE IF NOT EXISTS `categories` (
  `idCategory` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  PRIMARY KEY (`idCategory`) USING BTREE
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=55 ;
Run Code Online (Sandbox Code Playgroud)

*我的控制器类别中的功能*

    $names = array();
    public function returnCategoryNames()
{
    $dataProvider= new CActiveDataProvider('Categories');
    $dataProvider->setPagination(false);
    $count = $dataProvider->totalItemCount();

    for($i = 0; $i < $count; $i++){

             // this is where I am lost...
             $myname = $dataProvider->data[$i]->name;
             array_push($names, $myname);

    }   

       return $names;

}
Run Code Online (Sandbox Code Playgroud)

html php mysql yii

12
推荐指数
3
解决办法
3万
查看次数

如何在yii表单按钮提交中添加一个类

这是表单的代码.我想为提交按钮添加一个类,并为所有文本字段添加内联样式.我怎么能这样做?

例如在视图源中看起来像这样我想像这样编辑

<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'login-form',
    'enableClientValidation'=>true,
    'clientOptions'=>array(
        'validateOnSubmit'=>true,
    ),
)); ?>

    <p class="note">Fields with <span class="required">*</span> are required.</p>

    <div class="row">
        <?php echo $form->labelEx($model,'username'); ?>
        <?php echo $form->textField($model,'username'); ?>
        <?php echo $form->error($model,'username'); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'password'); ?>
        <?php echo $form->passwordField($model,'password'); ?>
        <?php echo $form->error($model,'password'); ?>
        <p class="hint">
            Hint: You may login with <kbd>demo</kbd>/<kbd>demo</kbd> or <kbd>admin</kbd>/<kbd>admin</kbd>.
        </p>
    </div>

    <div class="row rememberMe">
        <?php echo $form->checkBox($model,'rememberMe'); ?>
        <?php echo $form->label($model,'rememberMe'); ?>
        <?php echo $form->error($model,'rememberMe'); ?>
    </div>

    <div class="row …
Run Code Online (Sandbox Code Playgroud)

html css codeigniter yii

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

如何在yiibooster gridview中编辑标题?

我开始使用yiibooster在gridview简单添加上进行就地编辑

$columns[] = array(
            'name'  => $field->name,
            'value' => array($this, 'cellValue'),
            'class' => 'bootstrap.widgets.TbJEditableColumn',
            'jEditableOptions' => array(
                'type' => 'text',
                // very important to get the attribute to update on the server!
                'submitdata' => array('field_id'=>$field->id),
                'width' => '100%',
                'placeholder' => Yii::t('sms', 'click for edit'),
            )
        );
Run Code Online (Sandbox Code Playgroud)

如何以相同的方式编辑表头?

编辑: 我的解决方案.这个对我有用. http://pastebin.com/0NzHMgEr

yii cgridview yii-booster

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

如何将模型数据对象数组转换为dataProvider

假设我的模型User与自身有多对多的关系,命名为friends.所以$user->friends(或$model->friends在视图中)给我一个User对象数组.我想将朋友显示为gridview.但CGridView数据作为dataProvider对象.谷歌搜索找到了将模型对象数组转换为dataProvider对象的方法,如下所示.

$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'gridUser',
    'dataProvider' => new CArrayDataProvider($model->friends, array()),
));
Run Code Online (Sandbox Code Playgroud)

现在使用这个我得到一个错误

属性"User.id"未定义.

UPDATE

public function relations()
{
    return array(
         'friends' => array(self::MANY_MANY, 'User', 'friendship(user_id, friend_id)'),
    );
}
Run Code Online (Sandbox Code Playgroud)

php model yii dataprovider

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

Cron Job使用旧的不存在的php文件

我正在与Yii合作,必须为cron实现一个脚本.我有一个脚本文件,它只调用Yii并启动我的php脚本文件.

在此之前一切都很好.如果我正在更新php脚本,Cron就会继续执行旧脚本.

重启cron-service,重启服务器等没有帮助.我也卸载了cron并再次安装它,但没有任何改变.他仍然执行这个php脚本的旧版本.

任何人都知道什么是错的或我能做些什么来解决这个问题?我正在使用Ubuntu 12.04.

编辑:

cronjob脚本正在运行:

#!/bin/bash
cd ../www/protected/ ./yiic Cron ProcessPayments
Run Code Online (Sandbox Code Playgroud)

php脚本

class CronCommand extends CConsoleCommand {
public function actionProcessPayments() {
...
}}
Run Code Online (Sandbox Code Playgroud)

这有效,但我对此脚本所做的任何更改都会被Cron忽略.而现在我正是在这一点上:他执行两者.我的旧版本和新版本.我从来没有被某些东西弄糊涂.

php ubuntu cron yii

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

如何在yii2中添加散列密码

使用Yii 2 basic不是高级版本.

我有一个crud管理员身份验证系统.其中只存储数据库中的id,用户名和密码.当用户登录时,如果用户名和密码正确,则会登录.

但是我现在想要使这些密码安全,所以我想盐和散列它们.这是我发现难以做到的部分或更多,所以在哪里放东西.

第1部分: 我有一个AdminController,它与我的用户模型Create.php页面一起. 第2部分: 我有一个siteController,它与LoginForm模型和login.php页面一起登录.

我将首先讨论第一部分,因为它显然必须在这里实际生成一个哈希密码.

AdminController:

public function actionCreate()
{
    $model = new User();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

user.php的

    <?php

    namespace app\models;
    use yii\base\NotSupportedException;
    use yii\db\ActiveRecord;
    use yii\web\IdentityInterface;
    use yii\data\ActiveDataProvider;
    /**
     * User model
     *
     * @property integer $id
     * @property string $username
     * @property string $password
     */
class User extends ActiveRecord implements IdentityInterface
{


/**
 * …
Run Code Online (Sandbox Code Playgroud)

php hash login yii yii2

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

Yii与PHP风暴自动完成和类识别

我刚刚开始使用Yii框架(这是一个很棒的!)并且正在使用PHP Storm 5.

我已经将testdrive文件与Yii框架分开了,只是更改了index.php文件中的路径,这些路径都可以工作,但是我现在如何获得代码完成并且IDE能够识别所有yii系统类?

我用Google搜索并阅读了大量内容,但这些内容非常令人困惑,并且没有得到很好的解释.那里的任何人都可以给我几个步骤吗?

谢谢

编辑

我想通了,很容易.您所要做的就是转到文件→设置→项目设置→PHP→PHP主页→添加.并在yii中添加到框架文件夹的路径.

php yii phpstorm

11
推荐指数
2
解决办法
5339
查看次数

Yii再向CDbCriteria添加一个选择

我对Yii比较陌生.

我对原始SQL很有信心,但在ORM方面仍然有点迷失.所以这可能是一个虚假的问题.

我已经检索了所有必要的记录,例如CDbCriteria:

$criteria = new CDbCriteria(array(
  'select' => 'sum(items) as items',
  // 'condition' => 't.items > 0 and order.storage = "'Product::STORAGE_LOCAL . '"',

  'condition' => 't.items > 0 and order.storage = "' .  Product::STORAGE_LOCAL . '"',
  'order' => 'sum(items) DESC',
  'with' => array(
    'product' => array(
       'select' => 'code, title, producer, local_rest',

        **// 'select' => 'code, title, producer, sum(local_rest) as   local_rest',**
       'group' => 'product.code',
    )
  ),

  'join' => 'inner join `order` `order` on `t`.`order_id` = `order`.`id`',
   // …
Run Code Online (Sandbox Code Playgroud)

php database orm yii

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

标签 统计

yii ×10

php ×8

html ×2

ajax ×1

cgridview ×1

codeigniter ×1

cron ×1

css ×1

database ×1

dataprovider ×1

hash ×1

jquery ×1

login ×1

model ×1

mysql ×1

orm ×1

phpstorm ×1

ubuntu ×1

yii-booster ×1

yii2 ×1