标签: yii-cmodel

yii中的多模型形式

如何在Yii中创建多模型表单?我搜索了Yii的整个文档,但没有得到任何有趣的结果.有人可以给我一些方向或想法吗?任何帮助都会很明显.

php templates yii yii-cmodel yii-chtml

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

在Yii框架中,如何组合列并在下拉列表中显示为显示字符串

我有一个dropDownList在我看来,它是由填充clients表,表中包含样柱first_name,last_name,id等等,现在我想展示first_namelast_name作为显示文本和id在下拉列表中的值,我有做id的价值和first_name作为显示文本,但在这里我想组合这些列(first_namelast_name)并用作显示文本.

在模型中

function getClients()
{
    $Clients = Client::model()->findAll();
    $list    = CHtml::listData($Clients , 'client_id', 'first_name');
    return $list;
}
Run Code Online (Sandbox Code Playgroud)

在视野中

echo $form->dropDownList($model,'client_id',$model->getClients());
Run Code Online (Sandbox Code Playgroud)

php yii virtual-attribute html.dropdownlistfor yii-cmodel

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

Yii INSERT ...重复更新

我正在开发一个Yii项目.在Yii模型上执行save()时,如何使用MySQL的ON DUPLICATE功能(http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html)?

我的MySQL如下:

CREATE TABLE `ck_space_calendar_cache` (
  `space_id` int(11) NOT NULL,
  `day` date NOT NULL,
  `available` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `price` decimal(12,2) DEFAULT NULL,
  `offer` varchar(45) DEFAULT NULL,
  `presale_date` date DEFAULT NULL,
  `presale_price` decimal(12,2) DEFAULT NULL,
  `value_x` int(11) DEFAULT NULL,
  `value_y` int(11) DEFAULT NULL,
  PRIMARY KEY (`space_id`,`day`),
  KEY `space` (`space_id`),
  CONSTRAINT `space` FOREIGN KEY (`space_id`) REFERENCES `ck_space` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

我的PHP是如下:

$cache = new SpaceCalendarCache();
$cache->attributes = …
Run Code Online (Sandbox Code Playgroud)

php mysql yii on-duplicate-key yii-cmodel

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

在yii中ActiveRecord和model()之间的区别?

YII中ActiveRecord和模型之间的关系或区别是什么?

我试图登录is_object(CActiveRecord::model('Project'));并期待false但它又回来了true;

由于日志记录表明它是一个对象,我认为它代表表中的一行,但我找不到任何代表coloumns的属性.

另外http://www.yiiframework.com/doc/api/1.1/CActiveRecord#model-detail声明它返回了一个CActiveRecord类的实例,但我找不到该对象中表行的任何值.

yii yii-cmodel yii-cactiverecord

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

使用CArrayDataProvider进行Yii CGrid分页和排序不起作用

我在我的模型中构建了一个自定义函数并返回原始数据:

function(){
...
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
$rows=$command->queryAll();
return $rows;
}
Run Code Online (Sandbox Code Playgroud)

$ campModel = $ model-> function ..

然后我在CArrayDataProvider中使用这些行:

$dataProvider=new CArrayDataProvider($campModel);
Run Code Online (Sandbox Code Playgroud)

最后我试图使用CGrid查看:

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'bo-campaigns-grid',
'dataProvider'=>$campModel,...
Run Code Online (Sandbox Code Playgroud)

我猜这与CGrid的分页方式有关...但我输了谢谢你的帮助:)

php yii yii-cmodel zii-widgets

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

CModel与CFormModel对比CActiveRecord

我正在yii中构建一个数据库密集型应用程序.因此,性能和安全性自然是一个问题.除此之外,表格验证也是一个主要标准.为了安全起见,我计划对所有Sql查询使用参数绑定.为了验证,我想使用Yii提供的验证器,而不是自己推出验证器.我知道性能会受到CActiveRecord的影响.所以我打算为我的所有表创建Cmodel类,在这些相应的模型中定义验证规则,并定义执行sql查询以检索和插入数据的函数.我在网站上的所有数据收集主要是通过表格(约95%),如果我使用Cformmodel,我真的不明白Cmodel和Cformmodel之间的区别,使用它们是否有任何性能损失.

另外为了防止XSS攻击,我想使用HTML purify包装器作为验证规则,因为我几乎到处读到性能对这个包装器不好的情况,即使我将它用作验证规则,它会不会很糟糕?我是否应该使用Chtml :: Encode显示输出文本,即使我正在净化输入?

我处理数据的粗略计划是:

    $users= new Users() ; //Users is extending CModel , contains validation rules 
    $users=getdata(Yii->app->userid()) ; 
    if(isset('update'))
    {
        if($users->validate())
            {$users->updatedata() ; }
    }

$this->render('users','data'=>$users) 
Run Code Online (Sandbox Code Playgroud)

php yii yii-cmodel yii-cformmodel

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

Yii命令行不自动加载模型

我正在尝试使用Yii在命令行上运行命令.我的方法需要一个模型,但是当我运行命令时,Yii说模型不存在,好像它没有自动加载它.我的课很简单:

class ImportCommand extends CConsoleCommand {

    public function actionIndex() {

    }

    public function actionImport() {

        ini_set("display_errors", 1);
        set_time_limit(0);

        $cores = Core::model() -> findAll(array('limit' => 300000));

        foreach($cores as $core) {
            $core -> syncLocation();
        }


    }
}
Run Code Online (Sandbox Code Playgroud)

错误消息如下所示:

./yiic import import
PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20090626/php_xsl.dll' - dlopen(/opt/local/lib/php/extensions/no-debug-non-zts-20090626/php_xsl.dll, 9): image not found in Unknown on line 0
PHP Error[2]: include(Core.php): failed to open stream: No such file or directory
    in file /Users/dixond/Sites/nevada/yii/framework/YiiBase.php at line 421
#0 /Users/dixond/Sites/nevada/yii/framework/YiiBase.php(421): …
Run Code Online (Sandbox Code Playgroud)

php command-line yii yii-cmodel

4
推荐指数
2
解决办法
6231
查看次数

使用Yii Framework添加数据

这是我的用户表结构:

+----------------+------------------+------+-----+---------+----------------+
| Field          | Type             | Null | Key | Default | Extra          |
+----------------+------------------+------+-----+---------+----------------+
| ID             | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| screen_name    | varchar(20)      | NO   | UNI | NULL    |                |
| slug           | varchar(20)      | NO   |     | NULL    |                |
| email          | varchar(50)      | NO   | UNI | NULL    |                |
| pass           | varchar(32)      | YES  |     | NULL    |                |
| signin_twitter | enum('T','F') …
Run Code Online (Sandbox Code Playgroud)

php yii yii-cmodel

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

Yii模型:在Yii模型中使用动态表名

我有一个Yii模型将使用(稍后)多个数据库,表前缀将基于代码.

例如:

AMI_tablename,BMI_ AMI_tablename等

这些所有表都相同但在不同的数据库中.

我想知道如何在运行时向Yii模型提供动态表名?

我尝试使用setter函数,但父类CActiveRecord给出了一个错误,因为它没有从子模型类中获取值.

所以这是我的模型代码(只有我有问题的部分)

class RevShareModel extends CActiveRecord
{

    public $prefix;

    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

    /**
     * @return string the associated database table name
     */
    public function tableName()
    {
        return $this->prefix . '_revshare_model';
    }
Run Code Online (Sandbox Code Playgroud)

现在在我的控制器的某个地方

$obj = RevShareModel::model();
$obj->prefix ="BMI";
$obj->tableName();
$obj->findByPk(1);

exit;
Run Code Online (Sandbox Code Playgroud)

但我得到的错误是:

CDbException

The table "_revshare_model" for active record class "RevShareModel" cannot be found in the database.

C:\wamp\www\framework\db\ar\CActiveRecord.php(2264)
Run Code Online (Sandbox Code Playgroud)

好像当CActiveRecord调用tableName()方法时,它不会获得$前缀.

php yii yii-cmodel

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

Yii - 模型文件中的大多数函数都应该是静态函数吗?

我是Yii框架用户.

我主要在我的模型文件中将函数定义为公共静态函数,如下面的示例函数.

public static function getTrashedPostCount(){           
    $connection=Yii::app()->db;     
    $sql = "SELECT COUNT(publish_status)
                FROM {{post}}
                WHERE publish_status = 'trash'";              
    $command=$connection->createCommand($sql);
    $postCount = $command->queryScalar();
    return $postCount;      
}   
Run Code Online (Sandbox Code Playgroud)

我想知道我做错了.

模型文件中的大多数函数应该是静态函数吗?

如果我正在做或理解错误,请告诉我.

谢谢!!!

php yii yii-cmodel

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