Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:流程明白很重要
控制器是 MVC 中的 C ,用于接收 HTTP 请求并进行逻辑处理;
User
控制器)
php artisan make:controller User
创建成功后:在
app->Http->Controller
目录下可以看到自动创建的User
控制器,内容如下:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class User extends Controller
{
//
}
自动创建的控制包含:
1、命名空间
2、引入laravel的Request类
3、创建的User控制器(类),并自动继承自带的基类控制器。
(注:控制器类名必须与文件名相同,符合PSR-4规则才能自带加载。)
从自动创建的控制器可以看出,并没有多少代码,我们完全可以手动创建,下面演示手动创建一个
User
的控制器;
第一步:在 app->Http->Controller
目录下新建 User.php
第二步:命名空间及创建类 User
:代码如下:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class User{}
这样我们就手动创建了一个
User
的控制器,当然是个空的,里面并没有任何方法。(未继承基类控制器)
手动创建两个方法:其中
users()
方法使用视图输出,hello()
方法直接return
;
public function users()
{
//定义一个用户数组
$date=[
'users'=>[
'id' => 1,
'userName' => '西门老师',
'age' => 30,
'email' => 'ximen@php.cn',
'occupation'=> '讲师'
]
];
//使用助手函数view()输出,第1个参数:视图模板名称,第2个参数:数据源(数组)
return view('users',$date);
}
public function hello($name)
{
return '我的名字是:'.$name;
}
创建好控制器,必须通过设置路由来访问创建好的控制器,路由的定义文件在根目录
routes/web.php
中;
Route::get('users', 'Users@users');
Route::get('users/hello/{name}', 'Users@hello');
1、视图模板在根目录
resources\views
中;2、模板名称规则:
视图模板名称.blade.php
;3、控制器
users
方法定义视图名称为users
,所以我们创建的模板文件名为:users.blade.php
。
编写代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Users控制器</title>
</head>
<body>
<h3>Users控制器-数组输出</h3>
<div>昵称:{{$users['userName']}}</div>
<div>年龄:{{$users["age"]}}</div>
<div>邮箱:{{$users["email"]}}</div>
<div>职业:{{$users["occupation"]}}</div>
<h3>流程控制-if/else/endif</h3>
@if ($users["age"] < 30)
<p>拼搏中</p>
@elseif($users["age"] <= 40)
<p>资深讲师</p>
@else
<p>养老去了~~~</p>
@endif
<h3>流程控制-switch</h3>
@switch($users["age"])
@case($users["age"]<30)
<p>拼搏中</p>
@break
@case($users["age"]<=40)
<p>资深讲师</p>
@break
@default
<p>养老去了~~~</p>
@endswitch
</body>
</html>
{{$变量名}}
=> 解析后:<?php echo e($变量名); ?>
e($变量名)
laravel自定义函数,加入了过滤规则(如:html/script标签){!!$变量名!!}
;访问user控制器方法: