博主信息
博文 3
粉丝 0
评论 0
访问量 11461
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
9-14作业:控制器创建\往视图传值\ifelse变量等输出方式
浅浅的无名小卒
原创
937人浏览过

做一个计算年龄的小程序

1.创建控制器及视图

我这里在Controllers目录下手动创建了一个名为Myage的控制器,因为要传参的缘故,使用了Http\Request的类,接着写一个index()的方法,渲染至视图。
创建控制器
在resources\views\路径下创建了一个名为myage.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. <title>年龄计算</title>
  7. </head>
  8. <body style="width:60%;text-align: center;margin-left: auto;margin-right: auto;background-color: yellowgreen;">
  9. <h1>年龄计算</h1>
  10. <form id='info' action="./compute.cn" method="get">
  11. <div>
  12. <span>姓名:</span>
  13. <input type="text" name= 'name' id= 'name' placeholder='兄弟,怎么称呼?' required>
  14. </div>
  15. <br />
  16. <div>
  17. <span>出生日期:</span>
  18. <input type="date" name= 'born' id='born' placeholder='出生年月' required>
  19. </div>
  20. <br/>
  21. <input type="submit" id='tijiao' value="算一下">
  22. </form>
  23. </body>
  24. </html>

2.写一个路由

Route::get(‘/age.html’,’Myage@index’);
这样,浏览器访问域名/age.html就可以访问Myage控制器的index方法了,并自动渲染到myage视图

效果如下:
视图1

3.再在Myage控制器中写一个方法,我这里写了一个compute方法

这个方法主要任务是接受表单传过来的值,然后经过php一顿操作,得到了一个返回姓名、出生日期、年龄(天数)的data数组,代码如下:

  1. public function compute(Request $request){
  2. date_default_timezone_set('PRC');
  3. $data['name'] = $request->input('name');//称呼
  4. $borndate = $request->input('born') ?date_create($request->input('born')):date_create('1989-1-1') ;//出生年月格式化成date对象
  5. $data['borndate'] =$request->input('born');//原始的出生年月字段
  6. $data['age'] = date_diff($borndate,now())->format("%a");//差值转换成天数
  7. return view('compute',$data);
  8. }

4.然后再写compute.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. <title>年龄计算</title>
  7. </head>
  8. <body style="width:60%;text-align: center;margin-left: auto;margin-right: auto;background-color: yellowgreen;">
  9. <h1>年龄计算</h1>
  10. <form id='info' action="./compute.cn" method="get">
  11. <div>
  12. <span>姓名:</span>
  13. <input type="text" name= 'name' id= 'name' placeholder='兄弟,怎么称呼?' value= "{{$name}}"required>
  14. </div>
  15. <br />
  16. <div>
  17. <span>出生日期:</span>
  18. <input type="date" name= 'born' id='born' placeholder='出生年月' value= "{{$borndate}}" required>
  19. </div>
  20. <br/>
  21. <input type="submit" id='tijiao' value="算一下">
  22. </form>
  23. <script>
  24. @if($age>365*18)
  25. let year = Math.floor({{$age}}/365);
  26. alert("{{$name}}同志:您今年已经"+year+"岁了");
  27. @elseif($age>365)
  28. let year = Math.floor({{$age}}/365);
  29. alert("{{$name}}小朋友:您今年已经"+year+"岁了");
  30. @elseif($age>30)
  31. let month = Math.floor({{$age}}/30);
  32. alert("{{$name}}宝贝:你已经"+month+"个月了哦");
  33. @else
  34. alert("经鉴定,刚满{{$age}}天!");
  35. @endif
  36. </script>
  37. </body>
  38. </html>

这个视图文件里面用了模板输出,用了if/else的语法,用天数做参数对年龄进行了判断,主要区分18岁、1岁、30天几个特殊段进行了判断,输出不一样的交互内容。

4.再写一个路由

更新routes\web.php文件,添加一行,Route::get('/compute.cn','Myage@compute');

5.测试

  • 小明 1980-09-20

  • 小强 2008-08-08

  • 小红 2019-12-08

  • 小刚 2020-08-18

经测试,功能没有问题。laravel的控制器\视图及路由的简单演示程序-年龄计算完成。

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:通过这些小案例, 可以快速应用到实战中
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学