好久没有回顾yii2了,现在回想,已经不记得原来是怎么做的了,现在写在这里,也不怕忘了
首先,我们得创建一个模型,根据官网
先将通读一下,不然很多都不知道为什么 ,简单完整的模型
namespace appmodels;
use yiiaseModel;
class EntryForm extends Model{
public $name;
public $email;
public function rules(){
return[
[['name','email'],'required'],
['email','email'],
];
}
}
控制器中要先引入model :
use appmodelsEntryForm
public function actionIndex() { $model=new EntryForm(); return $this->render('index',[ 'model'=>$model ]); }
view里面
<?php use yiihelpersHtml; use yiiwidgetsActiveForm; ?> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'name') ?> <?= $form->field($model, 'email') ?> <?= Html::submitButton('Login') ?> <?php ActiveForm::end(); ?>
如果要进行表单提交等操作,应这样写
<?php $form = ActiveForm::begin( [ 'action'=>['login/list'], 'method'=>'post', ] ); ?> <?= $form->field($model, 'name') ?> <?= $form->field($model, 'email') ?> <?= Html::submitButton('提交') ?> <?php ActiveForm::end(); ?>
当我们不想用yii2.0这样的来写表单,想用HTML时,需要这样
<?=HTML::csrfMetaTags()?> <form action="<?=yiihelpersUrl::to(['update'])?>" method="post" > 姓名:<input type="text" name="name" value="<?=Html::encode("{$data['name']}") ?>" ><br> 邮箱:<input type="text" name="email" value="<?=Html::encode("{$data['email']}") ?>" ><br> <input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>"> <input type="submit" value="修改" > </form>
如果页面中没有
<?=HTML::csrfMetaTags()?>
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
这两个的时候,我们写出来的HTML页面的form表单是没法提交的,因为这两个在页面上会生成一个csrf
这两个csrf必须一致
运行
如果不想用yii2.0自带的样式 两种方式:
在控制器中加上 public $layout=false; 或者将 $this->render 换成 $this->renderPartial
数据接收
public function actionList(){ $request=Yii::$app->request; //接收所有参数 $data=$request->bodyParams; $post=$request->post(); }
这两种方法均是接收所有的数据
总结
视图渲染的几种方法
render :渲染一个 视图名 并使用一个 布局 返回到渲染结果。
renderPartial:渲染一个 视图名 并且不使用布局
renderAjax():渲染一个 视图名 并且不使用布局, 并注入所有注册的JS/CSS脚本和文件,通常使用在响应AJAX网页请求的情况下
多看官网文档,多看,
需要增删改查的可以去这里 http://www.cnblogs.com/qinmei/p/7055498.html