博客列表 >laravel7控制器的创建、参数传递及视图引擎基础语法

laravel7控制器的创建、参数传递及视图引擎基础语法

emagic
emagic原创
2020年09月15日 20:09:321081浏览

0914作业:

一、控制器创建

1.手动创建

  • 在app->Controllers目录下,新建文件
  1. <?php
  2. // 1.设置命名空间(命名空间和文件目录对应,注意区分大小写,App的A除外)
  3. namespace App\Http\Controllers;
  4. // 2.自定义一个控制类,类名自定义,但是一定要继承laravel的控制类,否则不属于控制器类
  5. // (注:控制器类名必须与文件名相同,符合PSR-4规则才能自带加载。)
  6. class Login extends Controller {
  7. public function hi(){
  8. return 'hello everbody';
  9. }
  10. }
  11. ?>

对应routes/web.php中加入路由就可以访问

  1. Route::get('index/hi', 'Login@hi');

2.自动创建

进入laravel文件夹中artisan所在同级目录

  • 输入 php artisan make:controller Example 最后个单词Example就是类名,可以根据需要自行命名,为规范要求大写开头

  • 后面控制器代码同手动方式一样设置相关方法代码即可

二、控制器往视图传值并输出,以及视图中blade语法if else 、switch、变量的输出方式

1.先创建视图模板

  • resources\views 中新建文件
  • 新建文件名要使用laravel模板必须带上.blade.php

info.blade.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <h2>输出</h2>
  10. <div>昵称:{{$username}}</div>
  11. <div>年龄:{{$age}}</div>
  12. <div>邮箱:{{$email}}</div>
  13. <div>职业:{{$role}}</div>
  14. <div>流程控制</div>
  15. <!-- switch判断 -->
  16. @switch(true)
  17. @case($age>0 && $age<=18)
  18. <span>少年!</span>
  19. @break
  20. @case($age>18 && $age<=30)
  21. <span>年轻人!</span>
  22. @break
  23. @case($age>30 && $age<=40)
  24. <span>大哥!</span>
  25. @break
  26. @default
  27. <span>老铁!</span>
  28. @endswitch
  29. <!-- if判断 -->
  30. @if ($role === 1)
  31. <span>{!!$msg!!}</span>
  32. <!-- 这种写法原样输出不转格式 -->
  33. @else
  34. <span>{{$defaultinfo}}</span>
  35. @endif
  36. </body>
  37. </html>

2.控制器login.php

  1. <?php
  2. // 1.设置命名空间(命名空间和文件目录对应,注意区分大小写,App的A除外)
  3. namespace App\Http\Controllers;
  4. // 2.自定义一个控制类,类名自定义,但是一定要继承laravel的控制类,否则不属于控制器类
  5. // (注:控制器类名必须与文件名相同,符合PSR-4规则才能自带加载。)
  6. class Login extends Controller {
  7. public function hi(){
  8. return 'hello everbody';
  9. }
  10. public function info(){
  11. $data['username'] = "emagic";
  12. $data['age'] = 20;
  13. $data['email'] = "emagic@qq.com";
  14. $data['sex'] = "男";
  15. $data['role'] = 1;
  16. $data['msg']= "<span style='color: red'>你是超级管理员,有删帖权利</span>";
  17. $data['defaultinfo'] = "请遵守网站规范,文明发帖";
  18. return view("info",$data);
  19. }
  20. }
  21. ?>

3. 对应设置路由器才能访问

web.php:(路由)
第一个参数:地址栏拼接的访问地址,第二个参数:控制器名称@方法名称

4.运行结果

三、小结:

laravel控制器传参到前端:

  • return view("param1",$param2);

  • 第1个参数:视图模板名称,第2个参数:必须是数组类型

laravel视图模板语法:

  1. `控制器中传来的数组在前端模板中直接使用key作为变量名即可!!!`
  2. `如controller中$data['username'],传递到view模板中使用,(xxx.blade.php)视图中写作{{$username}}`
  • {{$变量名}}前端解析更安全

  • {!!$变量名!!}原样输出,可以带上html或者script标签显示格式或者运行脚本

  • @if @else @switch 等条件判断前面要加,语句后面不用加分号;流程控制最后要加对应的@endif或者@endswitch等结束符

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议