**YII** 系列六Froms

>FORM


>>模型继承基类model

<span style="font-size:14px;">class EntryForm extends Model</span>
>>模型函数验证数据

<span style="font-size:14px;"><?php
$model = new EntryForm();
$model->name = 'Qiang';
$model->email = 'bad';
if ($model->validate()) {
    // 验证成功!
} else {
    // 失败!
    // 使用 $model->getErrors() 获取错误详情
}</span>

//validate()函数进行验证

//getErrors()负责获取错误详情

//model:;rule();函数验证的方法

>>控制器 继承基类controller,并添加相应的方法

<span style="font-size:14px;">public function actionEntry()</span><pre name="code" class="php"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;">{</span></span>
$model = new EntryForm; if ($model->load(Yii::$app->request->post()) && $model->validate()) { // 验证 $model 收到的数据 // 做些有意义的事 ... return $this->render('entry-confirm', ['model' => $model]); } else { // 无论是初始化显示还是数据验证错误 return $this->render('entry', ['model' => $model]); } }}
 
//controller::render()向前端传送数据 

//Yii::$app->requerst->post()从前端接受post数据

//model::load()对模型块赋值

>>视图接收表单和数据渲染

<span style="font-size:14px;"><?php
use yii\helpers\Html;
?>
<p>You have entered the following information:</p>

<ul>
    <li><label>Name</label>: <?= Html::encode($model->name) ?></li>
    <li><label>Email</label>: <?= Html::encode($model->email) ?></li>
</ul>
</span>
//<?= Html::encode() ?>这个属于yii/helpersd的内容,html::主要是为了生成html标签

//<?= Html::submitButton()?>生成html的submit按钮


>widget_1:ActiveForm


<span style="font-size:14px;"><?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>

    <?= $form->field($model, 'name') ?>

    <?= $form->field($model, 'email') ?>

    <div class="form-group">
        <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
    </div>

<?php ActiveForm::end(); ?></span>
//$from = activeForm::begin()初始化表单对象

>>关于ActiveForm的可定制性

--有种感觉就是,整个视图主要是html语法,php只作为其整体布局的一部分进行穿插,如果想输出PHP形式的代码或者php中html代码,必须使用echo进行输出,否则html代码无效。

--$form->field($model,'name')声明了表单对象处理的模型和模型的属性,并提供一定的验证验证机制

--field方法可以定义表单的方法,定制特殊的表单的相关属性。

>>ActiveField(对ActiveForm中的域field进行格式的限定)最常用的可定制性属性:

<span style="font-size:14px;"><?= $form->field($model, 'name')->label('自定义 Name') ?></span>
<span style="font-size:14px;"><?= $form->field($model, 'label')->textInput(['maxlength' => true])->hint('please write your mood or your fanscinating incidence to share') ?></span>
<span style="font-size:14px;"><?= $form->field($model, 'content')->textarea(['rows' => 10]) ?></span>
<span style="font-size:14px;"><?= $form->field($model, 'password')->passwordInput(['maxlength' => true]) ?></span>
<span style="font-size:14px;"><?= $form->field($model, 'sex')->dropDownList([ 'male' => 'Male', 'female' => 'Female', ], ['prompt' => '']) ?></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;">static checkbox( $options = [], $enclosedByLabel = true )</span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;">static checkboxList( $items, $options = [] )</span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;">static fileInput( $options = [] )</span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;">static hiddenInput( $options = [] )</span></span>
<span style="font-size:14px;">static listBox( $items, $options = [] )</span>
<span style="font-size:14px;">static radio( $options = [], $enclosedByLabel = true )</span>
<span style="font-size:14px;">static radioList( $items, $options = [] )</span>
<span style="font-size:14px;">static textInput( $options = [] )</span>
<span style="font-size:14px;">static textarea( $options = [] )</span>



>Yii::$app对象的理解


>>标准的面向对象的方法,当一个应用被访问的时候,会创建大量的对象来完成相关的请求。

Yii::$app是webapplication的实例(对象),是全局可以访问的单例

>>Yii::$app()->response是当前响应的对象。

>>Yii::$app()->request;是当前请求的对象。

>>Yii::$app->user是用户验证组件。

Yii::$app->db应用实体的数据库对象

(未完待续)


>其实还有一个方面的疑惑,关于名字的书写问题

类中的属性调用方法  $modle -> username(对象属性访问法)  / ($model,'username') (函数参数访问法)  / User::$username(无对象作用域调用发)

类中方法中调用$model->getUser()(全称访问方法)  /  $model->user (简称访问方法)


>类使用的进度表


>>yii/helpers/html

Html provides a set of static methods for generating commonly used HTML tags.

>>yii/widgets/activeFrom

--ActiveForm is a widget that builds an interactive HTML form for one or multiple data models.

>>yii/widgets/activefield

--ActiveField represents a form input field within an yii\widgets\activeForm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值