YII控制器,模型,视图的创建与使用


一、开始创建我们的控制器和方法


在controllers文件夹中创建一个***.php后缀的文件
要把我们新建的控制器名字存到命名空间和把我们要继承的类从命名空间中use出来
<?php
  namespace app\controllers;
  use yii\web\Controller;
  use Yii;
//和其他框架一样的创建类
class ZyController extends Controller{
    //这里我们创建方法是需要在首字母大写,然后在方法前加上action
    public function actionZy13(){
        //如果是添加方法则来判断是输出添加页面,还是执行添加操作
        if (!Yii::$app->request->isPost) {
            echo "展示";
        }else{       <pre name="code" class="python">            echo "处理";
} }
 
然后我们可以用来调用模型和视图层来处理各种问题了

一、始创建模型

首先在config文件夹的db.php文件中配置我们的数据库信息。
在models文件夹中创建一个***.php后缀的文件(一般来说模型名自要和我们所操作的数据库表名一致)
老规矩我们要把我们新建的模型类名字存到命名空间和把我们要继承的类从命名空间中use出来
<?php
    namespace app\models;
    use yii\db\ActiveRecord;

class B extends ActiveRecord{
    
    }

这个 Country 类继承自 yii\db\ActiveRecord。你不用在里面写任何代码。 只需要像现在这样,Yii 就能根据类名去猜测对应的数据表名。
注意:如果类名和数据表名不能直接对应,可以覆写 yii\db\ActiveRecord::tableName() 方法去显式指定相关表名(所以我们还是老实的于表名保持一致吧)。


一、始创建视图层

说明一下,Yii里面的视图层默认去视图层文件夹中去找当前控制器的文件夹,然后从此文件夹中找对应的要展示的视图文件,所有我们要如果需要调用视图层则需要创建一个与控制器同名的文件夹然后将需要调用的视图文件存储在这里。

//在控制器中视图层的调用和传值

public function actionIndex(){
    $data['value']="shuxina";
    $data['z']=array(0,1,2);;
    //这里需要使用return,赋值的话直接在后面写第二个参数
    return $this->renderPartial('index',$data);
    //还可以这样更简单些
    //return $this->render('index',$data);
}

然后看视图层的操作

//在视图层中展示,YII中使用的是<?=***;?>格式
<h1><?=$value;?></h1>
<h1><?=$z[0];?></h1>

//视图层的数据安全处理方法
public function actionIndex(){
    $data['value']="shuxina<script>alert(123)</script>";
    //如果一些不法人员向这样给我们传递类似的恶意代码就会影响我的程序正常运行
    return $this->renderPartial('index',$data);
}
//这里Yii给了我没两种处理方法
//直接将此代码转换成普通字符串打印,和直接排除此代码
//当然这样都是Yii封装的类我们需要调用出来(从此类的命名空间中把他们拿出来)
<?php
    use yii\helpers\Html;
    use yii\helpers\HtmlPurifier;
?>
//编译成普通字符串打印
<h1><?=Html::encode($value);?></h1>
//直接排除此类字符串
<h1><?=HtmlPurifier::process($value);?></h1>



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值