一:视图案例
视图在站点中的位置:resources/views
视图的命名:XXXX.blade.php(blade是框架模板引擎)
路由写法(web.php):
Route::match(['get'],'index2', 'Home\IndexController@index');
控制器写法:
//展示视图
public function index2(){
return view("Home/test/index2");
//view("Home.test.index2");同等
}
视图写法:
首先在resources\views\Home\test下创建index.blade.php文件
<?php
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>这里是index2.blade.php</h1>
</body>
</html>
浏览器访问:
(ps:如果此时视图路径下存在两个内容完全相同的php文件,其一为index2.blade.php,另一个叫index2.php,系统默认优先找blade.php结尾的文件,假如找不到,那系统再去找index2.php文件,但.php的文件在后续传参的时候操作更复杂一些,所以不推荐使用。)
二:视图变量分配与展示
语法:
view(模板文件名,数组)
view(模板文件名)->with(数组)
view(模板文件名)->(名称,值)->(名称,值)
Controller写法一:
//index2
public function index2(){
//获取时间
$date = date('Y-m-d H-i-s',time());
//日期
$week = "周日";
//展示视图
return view("Home.test.index2",['date'=>$date,'week'=>$week]);
}
Controller写法二:
//index2
public function index2(){
//获取时间
$date = date('Y-m-d H-i-s',time());
//日期
$week = "周日";
//展示视图
return view("Home.test.index2",compact('date','week'));
}
视图写法一:
<?php
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>这里是index2.blade.php</h1>
输出date:{{$date}}
<br/>
输出week:{{$week}}
</body>
</html>
浏览器访问:
二:在视图中使用函数
页面中使用php函数语法{{函数()}}
strtotime:获取时间戳函数
date:将时间戳转换成时间函数,默认0时区
Controller写法:
//index2
public function index2(){
//获取时间
$date = date('Y-m-d H-i-s',time());
//日期
$week = "周日";
//获取今天的时间戳
$time = strtotime('+0 day');
$result = compact($date,$week);
//展示视图
return view("Home.test.index2",compact('date','week','time'));
}
视图写法:
<?php
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>这里是index2.blade.php</h1>
输出date:{{$date}}
<br/>
输出week:{{$week}}
<hr/>
当前时间:{{date('Y-m-d H-i-s',$time)}}
</body>
</html>
浏览器访问:
三:视图中循环
循环语法:
@foreach(variable as $key => $value)
//循环体
@endforeach
路由写法:
//前台路由写法
Route::group(['prefix'=>'Home/test'], function () {
Route::match(['get'],'index3', 'Home\IndexController@index3');
});
Controller写法:
//index3
public function index3(){
//使用库表
$db = DB::table('user');
//查询数据
$date = $db -> get();
//数据传给视图
return view('Home/test/index3',compact('date'));
}
视图写法:
(如何foreach方法中的key不是必需,则可以省略不写)
<?php?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
id username password age
<br/>
@foreach ($date as $value)
{{$value -> id}} {{$value -> username}} {{$value -> password}} {{$value -> age}}<br/>
@endforeach
</body>
</html>
浏览器访问:
数据库:
四:视图中判断
语法:if,elseif前加个@,结束用@endif
(这里还是用原来的路由和Controller)
Controller增加:
//index3
public function index3(){
//使用库表
$db = DB::table('user');
//查询数据
$date = $db -> get();
//获取今天星期数字
$day = date('N');
//数据传给视图
return view('Home/test/index3',compact('date','day'));
}
视图写法:
<?php?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<!---->
id username password age
<br/>
@foreach ($date as $value)
{{$value -> id}} {{$value -> username}} {{$value -> password}} {{$value -> age}}<br/>
@endforeach
<hr/>
今天是星期
@if($day == '1')
一
@elseif($day == '2')
二
@elseif($day == '3')
三
@elseif($day == '4')
四
@elseif($day == '5')
五
@elseif($day == '6')
六
@else
日
@endif
</body>
</html>
浏览器访问: