在创建管理页面时,如何在 yii 框架中添加按钮并为其编写自己的操作代码?我在视图文件中的代码是:
<?php echo CHtml::beginForm('Protected/GreetingsController/actionSubmit','get');?>
<?php echo CHtml::submitButton('submit',array('SiteController'=>'actionIndex'));?>
<?php echo CHtml::endForm(); ?>
CHtml::beginForm()
只会将<form>
标签添加到您的 HTML 中。您需要了解 CHtml 函数如:button()、link()、ajaxButton() ...等是使用属性(例如$htmlOptions数组)作为满足您需要的选项来生成一些 HTML。
action
对于这种情况,如果您想在某些地方精确地指向,controller
您可以使用一个名为beginWidget的方法,如下所示:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'action' => "/controller-name/action-name",
)
);?>
<?php echo CHtml::submitButton('Save'); ?>
<?php $this->endWidget(); ?>
触发时的 button() 将发送到指定的action
.
当您在 yii 框架上工作时,控制器负责显示视图页面。现在您看到了一个表单,并且您想向该表单添加操作。您转到该特定控制器并在此处调用该表单视图。
例如。你有一个注册表在这里。
<h2>Registration Form</h2>
<div class="form">
<?php echo CHtml::beginForm(); ?>
<?php echo CHtml::errorSummary($model); ?>
<div class="row">
<?php echo CHtml::activeLabel($model,'User Name'); ?>
<?php echo CHtml::activeTextField($model,'username') ?>
</div>
<div class="row">
<?php echo CHtml::activeLabel($model,'email'); ?>
<?php echo CHtml::activeTextField($model,'email') ?>
</div>
<div class="row">
<?php echo CHtml::activeLabel($model,'password'); ?>
<?php echo CHtml::activePasswordField($model,'password') ?>
</div>
<div class="row">
<?php echo CHtml::activeLabel($model,'Retype Password'); ?>
<?php echo CHtml::activePasswordField($model,'retypepassword') ?>
</div>
<div class="row submit">
<?php echo CHtml::submitButton('Register'); ?>
</div>
<?php echo CHtml::endForm(); ?>
</div><!-- form -->
现在我没有在查看注册表单页面中插入任何操作。
现在我可以将此表单访问到我想要的任何控制器。
<?php
class yourController extends Controller
{
public function actionIndex() {
$model = new RegisterForm ;
$this->render('register',array('model'=>$model));
}
}
现在你可以随心所欲地做所有事情......
您应该需要添加模型,因为如果您没有添加模型类,那么我会给出错误。
你可以看到 yii 给出的完整文档,这样你就很容易理解了。
关联。 http://www.yiiframework.com/doc/guide/1.1/en/form.model
谢谢