Blogger Information
Blog 63
fans 8
comment 8
visits 50351
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP大牛成长之路:laravel初探控制器、路由与视图
周Sir-BLOG
Original
1015 people have browsed it

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路由的基本定义
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:流程明白很重要
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post