【问题标题】:which value I have to pass to a variable $model in yii booster TbActiveForm我必须将哪个值传递给 yii booster TbActiveForm 中的变量 $model
【发布时间】:2013-06-21 05:17:18
【问题描述】:

我尝试使用 yii booster 小部件来创建带有 TbActiveForm 的表单。

我看到了一些例子 相关的TbActiveForm喜欢创建textfield,

<?php echo $form->textFieldRow($model, 'textField', array('class'=>'input-small')); ?>

但我担心变量$model。谁能帮我解决这个问题。

我是第一次使用 yii booster 和 yii 框架。请帮我解决这个问题。

【问题讨论】:

  • 您的问题表明,您甚至没有阅读 Yii 的最基本文档。您不能指望我们在您学习的每一步都为您提供帮助。所以请先学习some basics,只问其他地方没有涉及的问题。

标签: php twitter-bootstrap yii yii-extensions


【解决方案1】:

它是你传递给视图的对象,其中包含保存数据的属性,如图所示

模型类如图所示

class UrModelname extends CFormModel{
      public $textfile;
      ..
      ..
}

检查你的控制器,你会在那里得到这个代码

$model=new UrmodelName();
$this->render('viewname',array('model'=>$model))

在您的示例文本字段中是 $model 对象引用的属性

【讨论】:

    【解决方案2】:

    Yii Booster 提供了一种从我们的模型构建表单的更简单方法,因此 $model 变量应该是扩展 CActiveRecord 的模型的类。

    您可以使用 gii 从您的表创建模型,例如表用户。 然后你会得到位于protected/model/User.php的模型用户,用户有用户名和密码属性。

    那么当你想使用 textFieldRow 时,你可以像这样使用它来创建新用户

    $model = new User;
    $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
    'id'=>'user-form',
    ));
    <?php echo $form->textFieldRow($model,'username'); ?>
    <?php echo $form->passwordFieldRow($model,'password'); ?>
    $this->endWidget();
    

    因此,$model 变量应该是您的新用户模型或活动模型

    【讨论】:

    • 其实可以是CModel的任意子类,不只是CActiveRecord
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2012-07-10
    • 2021-07-25
    相关资源
    最近更新 更多