0914作业:
一、控制器创建
1.手动创建
- 在app->Controllers目录下,新建文件
<?php
// 1.设置命名空间(命名空间和文件目录对应,注意区分大小写,App的A除外)
namespace App\Http\Controllers;
// 2.自定义一个控制类,类名自定义,但是一定要继承laravel的控制类,否则不属于控制器类
// (注:控制器类名必须与文件名相同,符合PSR-4规则才能自带加载。)
class Login extends Controller {
public function hi(){
return 'hello everbody';
}
}
?>
对应routes/web.php
中加入路由就可以访问
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2>输出</h2>
<div>昵称:{{$username}}</div>
<div>年龄:{{$age}}</div>
<div>邮箱:{{$email}}</div>
<div>职业:{{$role}}</div>
<div>流程控制</div>
<!-- switch判断 -->
@switch(true)
@case($age>0 && $age<=18)
<span>少年!</span>
@break
@case($age>18 && $age<=30)
<span>年轻人!</span>
@break
@case($age>30 && $age<=40)
<span>大哥!</span>
@break
@default
<span>老铁!</span>
@endswitch
<!-- if判断 -->
@if ($role === 1)
<span>{!!$msg!!}</span>
<!-- 这种写法原样输出不转格式 -->
@else
<span>{{$defaultinfo}}</span>
@endif
</body>
</html>
2.控制器login.php
<?php
// 1.设置命名空间(命名空间和文件目录对应,注意区分大小写,App的A除外)
namespace App\Http\Controllers;
// 2.自定义一个控制类,类名自定义,但是一定要继承laravel的控制类,否则不属于控制器类
// (注:控制器类名必须与文件名相同,符合PSR-4规则才能自带加载。)
class Login extends Controller {
public function hi(){
return 'hello everbody';
}
public function info(){
$data['username'] = "emagic";
$data['age'] = 20;
$data['email'] = "emagic@qq.com";
$data['sex'] = "男";
$data['role'] = 1;
$data['msg']= "<span style='color: red'>你是超级管理员,有删帖权利</span>";
$data['defaultinfo'] = "请遵守网站规范,文明发帖";
return view("info",$data);
}
}
?>
3. 对应设置路由器才能访问
web.php:
(路由)
第一个参数:地址栏拼接的访问地址,第二个参数:控制器名称@方法名称
4.运行结果
三、小结:
laravel控制器传参到前端:
return view("param1",$param2);
第1个参数:视图模板名称,第2个参数:必须是数组类型
laravel视图模板语法:
`控制器中传来的数组在前端模板中直接使用key作为变量名即可!!!`
`如controller中$data['username'],传递到view模板中使用,(xxx.blade.php)视图中写作{{$username}}`
{{$变量名}}
前端解析更安全{!!$变量名!!}
原样输出,可以带上html或者script标签显示格式或者运行脚本@if @else @switch 等条件判断前面要加,语句后面不用加分号;流程控制最后要加对应的@endif或者@endswitch等结束符