博客列表 >PHP大牛成长之路:laravel初探控制器、路由与视图

PHP大牛成长之路:laravel初探控制器、路由与视图

周Sir-BLOG
周Sir-BLOG原创
2020年09月15日 00:35:13998浏览

1 控制器 Controller

控制器是 MVC 中的 C ,用于接收 HTTP 请求并进行逻辑处理;

1.1 自动创建控制器

  • laravel 自带了一个命令行工具,可以在VS CODE终端中使用;
  • 创建控制器命令: (例:创建一个 User 控制器)
  1. php artisan make:controller User

创建成功后:在 app->Http->Controller 目录下可以看到自动创建的 User 控制器,内容如下:

  1. namespace App\Http\Controllers;
  2. use Illuminate\Http\Request;
  3. class User extends Controller
  4. {
  5. //
  6. }

自动创建的控制包含:
1、命名空间
2、引入laravel的Request类
3、创建的User控制器(类),并自动继承自带的基类控制器。
(注:控制器类名必须与文件名相同,符合PSR-4规则才能自带加载。)

1.2 手动创建控制器

从自动创建的控制器可以看出,并没有多少代码,我们完全可以手动创建,下面演示手动创建一个 User 的控制器;

  • 第一步:在 app->Http->Controller 目录下新建 User.php

  • 第二步:命名空间及创建类 User:代码如下:

  1. namespace App\Http\Controllers;
  2. use Illuminate\Http\Request;
  3. class User{}

这样我们就手动创建了一个 User 的控制器,当然是个空的,里面并没有任何方法。(未继承基类控制器)

1.3 创建控制器方法

手动创建两个方法:其中users()方法使用视图输出,hello()方法直接return;

  1. public function users()
  2. {
  3. //定义一个用户数组
  4. $date=[
  5. 'users'=>[
  6. 'id' => 1,
  7. 'userName' => '西门老师',
  8. 'age' => 30,
  9. 'email' => 'ximen@php.cn',
  10. 'occupation'=> '讲师'
  11. ]
  12. ];
  13. //使用助手函数view()输出,第1个参数:视图模板名称,第2个参数:数据源(数组)
  14. return view('users',$date);
  15. }
  16. public function hello($name)
  17. {
  18. return '我的名字是:'.$name;
  19. }

2 定义路由

创建好控制器,必须通过设置路由来访问创建好的控制器,路由的定义文件在根目录 routes/web.php 中;

  • 第1个参数:路由名称
  • 第2个参数:控制器@方法名
  1. Route::get('users', 'Users@users');
  2. Route::get('users/hello/{name}', 'Users@hello');

3 视图(创建视图模板)

1、视图模板在根目录 resources\views 中;

2、模板名称规则:视图模板名称.blade.php

3、控制器 users 方法定义视图名称为 users ,所以我们创建的模板文件名为: users.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. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Users控制器</title>
  8. </head>
  9. <body>
  10. <h3>Users控制器-数组输出</h3>
  11. <div>昵称:{{$users['userName']}}</div>
  12. <div>年龄:{{$users["age"]}}</div>
  13. <div>邮箱:{{$users["email"]}}</div>
  14. <div>职业:{{$users["occupation"]}}</div>
  15. <h3>流程控制-if/else/endif</h3>
  16. @if ($users["age"] < 30)
  17. <p>拼搏中</p>
  18. @elseif($users["age"] <= 40)
  19. <p>资深讲师</p>
  20. @else
  21. <p>养老去了~~~</p>
  22. @endif
  23. <h3>流程控制-switch</h3>
  24. @switch($users["age"])
  25. @case($users["age"]<30)
  26. <p>拼搏中</p>
  27. @break
  28. @case($users["age"]<=40)
  29. <p>资深讲师</p>
  30. @break
  31. @default
  32. <p>养老去了~~~</p>
  33. @endswitch
  34. </body>
  35. </html>
  • 模板语法:{{$变量名}} => 解析后:<?php echo e($变量名); ?>
  • e($变量名) laravel自定义函数,加入了过滤规则(如:html/script标签)
  • 如果不希望laravel过滤则使用:{!!$变量名!!}

访问user控制器方法:

总结:

  • 初步了解了MVC中的V(View)和C(Controller)
  • 了解了laravel路由的基本定义
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议