Yii基础学习4

技术QQ交流群:294088839


一.引用视图中的布局文件
   一般公共文件都写在layouts文件中
   <?php $this->beginPage() ?> 在布局的开始处调用
   <?php $this->endPage() ?>   在布局的结尾处调用
   <?php $this->head() ?>     在html页面中<head>标签中调用
   <?php $this->beginBody() ?> 在body标签的开始处调用
   <?php $this->endBody() ?>  在body标签结尾处调用
   <?= $content ?>     在body中间调用 内容部分
如果有的特殊页面不需要这个公共页面或者需要其他的公共页面
需要在相对应的控制器中设置一个变量来指定相对应的公共页面
//如果不需要就设置为false;
 $this->layout=false; 或者 $this->layout='公共页面名称';


二.配置应用主题
 一些公共的常理经常使用 可以用 Yii::app来调用
 例如:
  <html lang="<?= Yii::$app->language ?>">
  <head>
      <meta charset="<?= Yii::$app->charset ?>">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <?= Html::csrfMetaTags() ?>
      <title><?= Html::encode($this->title) ?></title>
      <?php $this->head() ?>
  </head>
 这里的 language变量是通过配置文件config中进行声明的常理


修改默认控制器:在配置文件中加
[
    'defaultRoute' => '默认路径',
]


三.模型
建立模型文件
首先要声明命名空间,打开相对应的基类文件
namespace frontend\models;
use yii;
use yii\db\ActiveRecord;


 1.一个模型文件对应一个数据库的表
 在视图展示页面的时候,如果有后台要展示的数据:控制器中要实例化相对应的模型,在通过render()方法来展示页面和传输模型数据
例如:
有一个test表 然后视图要展示test表里的内容 在渲染页面的时候,要把这个表传输过去
   $t=new Test();
   return $this->render('index',['model'=>$t]);


 2.模型中定义验证规则用rules()方法 具体参数参照开发手册
 例:
 public function rules(){
         return [
             [['user', 'time'], 'required'],
             [['user'], 'required'],
         ];
     }


3.在模型中也可以定义场景 scenarios()方法
场景的意思:添加数据数据的时候 所有的信息都要有验证 但是编辑信息的时候有时候有的信息不用必填 就可以用这个场景过滤掉
把添加和编辑的验证规则写在一起
例:
   //先用这个方法定义场景
   public function scenarios(){


         return [
             'create'=>['user','time'],
             'update'=>['user']
         ];
     }
     //在验证规则这里 后面跟上on关键字 来判断是否是编辑或者是添加
      public function rules(){
             return [
                 // 在"register" 场景下 username, email 和 password 必须有值
                 [['user', 'time'], 'required','on' => 'create'],
                 [['user'], 'required','on' => 'update'],
             ];
         }


       //最后在控制器中 使用scenario变量赋值
          $t=new Test();
         $t->scenario = 'update';
 这样他就可以找到相对应的验证规则


4.Yii中的一些方法
使用Yii类里的方法要先打开
use Yii;
//判断是非是post提交
Yii::$app->request->isPost
//接收模型里相对应字段的值,把框架中自带的一些参数过滤掉 这种接收方式跟$_POST接收方式进行比较可以看出不一样的地方
Yii::$app->request->post('模型的名字')
find() 查找一条数据
findOne(1) 查找一条数据
具体的用法查看手册





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Json____

您的鼓励是我创作的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值