标签: yii

如何让Yii从已知用户生成下拉列表?

我刚刚开始学习使用yii,并且已经设法做了一些基本的东西.

假设我有两个简单的表:"用户"和"项目",其中关系是1到多(一个用户可以有很多项目)

我使用GII生成了CRUD,但是在"创建/编辑用户页面"中,这不提供下拉列表,而只提供我需要输入用户ID的文本字段.

在编辑项目时,我想有一个下拉列表,我可以在其中选择一个用户(因此该元素应该显示一个用户名列表).

我假设GII无法为此生成控制器和查看代码

这样做的最佳做法是什么?

我已按照http://www.yiiframework.com/doc/guide/1.1/en/database.arr中的说明声明了这些关系

public function relations()
{
   return array(
        'projects_rel'=>array(self::BELONGS_TO, 'Users', 'user_id'),
    );
}
Run Code Online (Sandbox Code Playgroud)

public function relations()
{
    return array(
        'users_rel'=>array(self::HAS_MANY, 'Projects', 'project_id'),
    );
}
Run Code Online (Sandbox Code Playgroud)

php activerecord non-relational-database yii

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

在Yii上获取数据库中的下一个和上一个id记录

我需要在Yii框架的数据库中使用next和之前的id记录来制作导航按钮吗?

php mysql yii

0
推荐指数
2
解决办法
8584
查看次数

json_encode不会逃脱换行符

首先,我有搜索Stack Overflow的答案,但我还没有找到一个有效的解决方案.

我正在使用MVC框架(yii)生成一些视图并将它们放入数组中.每张视图都是一张牌,我有一系列牌($ deck)以及一系列牌($ hands,每个牌手的牌局).我只是想在前端设置一个javascript变量来存储用PHP创建的指针.值得注意的是,我的观点有多条线.实际上,我当前的测试视图仅包含:

test
test
Run Code Online (Sandbox Code Playgroud)

因此我使用了json_encode,但是当我使用$ .parseJSON()时它会给我以下错误:

Uncaught SyntaxError: Unexpected token t
Run Code Online (Sandbox Code Playgroud)

我在别处读到,需要(无论出于何种原因)两次使用json_encode.我试过这个,但没有用.

使用单个json_encode,echoing $hands(后跟退出)的输出看起来非常健康:

[["test\ntest","test\ntest","test\ntest","test\ntest", etc...
Run Code Online (Sandbox Code Playgroud)

但是当我不退出时,每次都会出现语法错误.

编辑:这是我的代码示例.请注意,$ cards通常是一个HTML数组,但在我的简化情况下仍然存在错误,仅包括上面提到的两行'test'.

    $deck = array();
    foreach ($cards as $card) {
        $deck[] = $this->renderPartial('/gamePieces/cardTest', 
                array('card'=>$card), true);
    }
    $hands = Cards::handOutCards($deck, $numCards , $numPlayers);
    $hands = json_encode($hands);

    echo $hands; exit;
Run Code Online (Sandbox Code Playgroud)

使用JavaScript,我正在执行以下操作:

var hands = $.parseJSON('<?php echo json_encode($hands); ?>');
Run Code Online (Sandbox Code Playgroud)

它在页面加载时出错.

任何帮助,将不胜感激!

谢谢,

ParagonRG

javascript php json yii

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

Yii客户端验证和jQuery Form插件集成

我在我的一个项目中使用Yii框架,我想将jQuery Form插件与Yii客户端内置验证一起使用.

我不能让他们一起工作.如果我jQuery form plugin使用这个简单的js代码设置:

$('#myform-id').ajaxForm();
Run Code Online (Sandbox Code Playgroud)

执行客户端验证但即使验证失败也不会停止表单提交.我想这与Yii客户端验证库和jQuery表单插件在表单上绑定相同的"submit"事件有关.

仅供参考,我仔细检查过FireBug和Chrome控制台没有js错误.

我想知道是否有人经历过同样的问题并且解决了一些问题.

php validation jquery jquery-forms-plugin yii

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

Yii在CFormModel中的"独特"验证器

我在Yii Framework中有这么一小段代码:

array('username', 'unique', 'attributeName'=> 'username', 'caseSensitive' => 'false'),
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误:

RegisterForm and its behaviors do not have a method or closure named "tableName".
Run Code Online (Sandbox Code Playgroud)

完整的RegisterForm.php模型:

<?php
class RegisterForm extends CFormModel
{
    public $username;
    public $password;
    public $password2;
    public $email;
    public $fullname;
    public $birth;

    public function rules()
    {
        return array(
            array('username, password, password2, email, fullname, birth', 'required'),

            array('username','length','min'=>3),
            array('username','length','max'=>16),
            array('username', 'filter', 'filter'=>'strtolower'),
            array('username', 'ext.alpha', 'allowSpaces'=>'flase', 'allAccentedLetters'=>'false'),
            array('username', 'unique', 'attributeName'=> 'username', 'caseSensitive' => 'false'),

            array('password', 'length', 'min' =>6),
            array('password', 'length', 'max' =>32),
            array('password', …
Run Code Online (Sandbox Code Playgroud)

php forms validation frameworks yii

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

Yii CGridview没有过滤

我正在尝试使用YII CGridview来显示一些数据.

这是我的模型搜索功能的主页:

/**
 * Retrieves a list of models based on the current search/filter conditions.
 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
 */
public function search()
{
    $criteria=new CDbCriteria;
    $criteria->compare('ip',$this->ip,true);
    $criteria->compare('first_use',$this->first_use,true);
    $criteria->compare('last_use',$this->last_use);
    $criteria->compare('memberid',$this->memberid);
    $criteria->compare('countryid',$this->countryid);

    return new CActiveDataProvider(get_class($this), array(
        'criteria'=>$criteria,
    ));
}
Run Code Online (Sandbox Code Playgroud)

这就是我的观点

$this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'iplog-grid',
        'dataProvider'=>$oIPLog->search(),
        'filter'=>$oIPLog,
        'summaryText' => 'showing you {start} - {end} of {count} logged Ips',
        'columns'=>array(
            array(
                'name'=>'ip',
                'type'=>'raw',
            ),
            array(
                'name'=>'first_use',
                'type'=>'datetime',
            ),
            array(
                'name'=>'last_use',
                'type'=>'datetime', …
Run Code Online (Sandbox Code Playgroud)

php filter yii

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

Twitter Bootstrap与Themeforest管理主题

我正在构建一个Web应用程序,最终想要使用Yii框架.但是现在我正在进行Web应用程序本身的过程或原型设计.虽然我喜欢Twitter Bootstrap,但我很好奇,

  1. 如果我从Themeforest购买管理员模板,那么无论如何它会提供比Bootstrap更完整的功能吗?有没有人使用这些模板,您的经验/意见是什么?

  2. 假设我使用Bootstrap或Themeforest的主题完成线框,Yii'ify它有多容易?

wireframe yii twitter-bootstrap

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

插入Jquery脚本文件

嗨伙计们!在我的网站上,我注意到在某些页面上我没有包含Jquery库.但在其他页面上,我在头标记中看到它:

    <head>
        ...
        <script type="text/javascript" src="/assets/fe9bd624/jquery.js"></script>
        <script type="text/javascript" src="/assets/fe9bd624/jquery.ba-bbq.js"></script>
        ...
    </head>
Run Code Online (Sandbox Code Playgroud)

在我的主题布局/ main.php中,我没有头标记中的Jquery文件.所以问题是:什么控件在我的页面上插入Jquery,以及如何在所有页面上插入它.谢谢.

yii

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

使用Yii findAll返回具有所有属性的模型

我还是Yii的新手,想知道如何从中返回JSON $models = MyModel::model()->findAll();.

比如说MyModel有一种关系MyChildModels:一种:多种方式.

直接来自Yii网站上的Rest示例我有:

foreach ($models as $model) {
    $rows[] = $model->attributes;
}

$this->_sendResponse(200, CJSON::encode($rows), 'application/json');
Run Code Online (Sandbox Code Playgroud)

我得到了所有模型的属性,但没有得到连接的关系属性.

同样,我可以将$rows行更改为:

$rows[] = $model->myChildModels;
Run Code Online (Sandbox Code Playgroud)

...我获得myChildModels了每个模型的所有属性,但没有任何属性(正如我所期望的那样).

但我想要的是全套 - Model属性PLUS所有myChildModels及其属性.

我该如何做到这一点?

php activerecord yii

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

在YII中默认按desc顺序排序数据

我想在YII视图中以desending顺序显示一些数据.我是否默认按studentID desc订购数据?

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'student-grid',
      'criteria'=>array(

'order'=>'StudentID DESC',

     ),

    'dataProvider' => Agent::getStudents($model->agent_id),
    'columns' => array(
        'StudentID',
        'first_name',
        'last_name',

        'dob',
        'gender',
        array(
            'header' => 'Options',
            'class' => 'CButtonColumn',
            'template'=>'{View}',
            'buttons'=>array(
                'View' => array(
                    'url'=> 'Yii::app()->createUrl("/students/view/" . $data->StudentID)',
                ),
            ),
        ),
    ),
)); ?>
Run Code Online (Sandbox Code Playgroud)

谢谢Ab

yii

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