博客列表 >03月9-11日作业:路由器、控制器和数据库操作

03月9-11日作业:路由器、控制器和数据库操作

李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰原创
2020年03月12日 18:13:41801浏览

作业一:

1、路由案例
1.1代码:

  1. Route::get('/db',function(){
  2. // dd($data);
  3. return DB::table('staff')->select('name','age')->get();
  4. });
  5. Route::get('/demo',function(){
  6. return view('demo');
  7. });
  8. Route::get('/hello',function(){
  9. return '欢迎访问页面';
  10. });
  11. Route::get('/sum/{a?}/{b?}',function ($a = 4, $b = 10) {
  12. return $a . '+' . $b . '=' . ($a + $b);
  13. });
  14. Route::get('/homecontroller/index','HomeController@index');
  15. Route::get('/homecontroller/db','HomeController@db');
  16. //数据库操作
  17. Route::get('/dbcontroller/db','DbController@db');
  18. //查询构造器
  19. Route::get('/dbcontroller/table','DbController@table');

1.2运行结果:

2、控制器

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\DB;
  5. class HomeController extends Controller
  6. {
  7. public function index(){
  8. $name=$_GET['name'];
  9. $age=$_GET['age'];
  10. $user=[$name,$age];
  11. $data['username']=$user;
  12. // dd($data);
  13. return view('home/index1',$data);
  14. }
  15. public function db(){
  16. $data=DB::table('staff')->select('name','age')->get();
  17. // dd($data);
  18. $users['list']=$data;
  19. return view('home/index',$users);
  20. }
  21. }

3、数据库操作(代码):

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Support\Facades\DB;
  4. class DbController extends Controller
  5. {
  6. public function db(){
  7. // $n=$_GET['size'];
  8. // 查询
  9. // $data=DB::select('SELECT `staff_id`,`name`,`age`,`mobile` FROM `staff` LIMIT 0, :n',['n'=>$n]);
  10. // 更新操作
  11. $res=DB::update('update `staff` SET `age`=? WHERE `staff_id`=?',[18,1]);
  12. dd($res);
  13. // return $res;
  14. }
  15. //增加数据
  16. public function table(){
  17. $data = [
  18. 'name'=> '东方不败',
  19. 'sex'=>1,
  20. 'age'=>30,
  21. 'salary'=>8000,
  22. 'email'=>'dfbb@php.cn',
  23. 'mobile'=> '15800448811',
  24. 'password'=>sha1('123456'),
  25. 'created_at'=>time(),
  26. 'updated_at'=>time(),
  27. ];
  28. $user= DB::table('staff')->insertGetId($data);
  29. dd($user);
  30. }
  31. //查询数据
  32. public function select(){
  33. $data= DB::table('staff')->select(['staff_id','name','age','mobile'])->get();
  34. dd($data);
  35. }
  36. //更新数据
  37. public function update(){
  38. $data= DB::table('staff')->where('staff_id',1)->update(['salary'=>10000]);
  39. dd($data);
  40. }
  41. //删除数据
  42. public function delete(){
  43. return DB::table('staff')->whereBetween('staff_id',[14,16])->delete();
  44. }
  45. }

作业二

一、laravel框架目录知识点:
1、控制器目录:blog\app\Http\Controllers;
2、网站根目录(www):public
3、路由目录:routes
4、视图目录:resources\views
5、环境配置文件:.evn
laravel中的定义输出函数dump();dd();输出后终止应用

二、路由相关知识:
1、将URL请求地址,映射到应用程序上的功能, 就是路由技术
2、Laravel中的Web请求默认路由文件是:routes/web.phpLaravel中的所有Web访问,必须设置路由才会生效
3、路由有路由动作和路由行为组成:例如:Route::get('hello', funciton (){...})
4、laravel中路由主要有web.php(url请求)和api.php(api接口请求)
5、路由的动作:GET,POST,PUT,PATCH,DELETE;
如果一个请求,需要响应多个动作,可以这样做:

  1. // 可响应GET/POST请求
  2. Route::match(['get', 'post'], 'url', function () {...});
  3. // 可响应任何请求
  4. Route::any('url', function () {...});

6、路由参数:必选参数:{}标识;可选参数{?};参数类型约束:->where(参数,类型);链式调用

  1. Route::get('sum/{a}/{b}', function ($a, $b) {
  2. return "$a + $b = " . ($a + $b);
  3. })->where(['a'=>'\d+', 'b'=>'\d+']);

7、闭包路由中(第二个参数必须是闭包)闭包函数的返回数据, 不要使用echo,应该统一使用return, 由响应对象决定如何返回前端;
8、路由第二个参数可以有控制器代替也成为控制路由;8、路由第二个参数可以有控制器代替;
三、数据库操作
1、原生查询:

  • Laravel 默认全部采用PDO实现数据库的CURD操作
  • 参数占位符,支持匿名(?)与命名二种语法(:name)

1.2、操作数据库需要引用DB类:use Illuminate\Support\Facades\DB;
1、3操作方法:
增(insert):DB::insert(‘sql语句’,数据);返回true
删(delete): DB::delete(‘sql语句’,数据);返回受影响记录
改(update): DB::insert(‘sql语句’,数据);返回更新行数
查(select): DB::insert(‘sql语句’,数据);返回
sql语句:
查:SELECTid,name,emailFROMstaffsLIMIT 0, :n', ['n'=>$n]
更:'UPDATEstaffsSETage= ?,salary= ? WHEREid= ? ', [$age, $salary, $id]
增:'INSERTstaffs' . $fields . ' VALUES ' . $values;
删:'DELETE FROMstaffsWHEREid= ?', [$id]
删除更新必须有where条件
2、查询构造器
2.1:语句结构
DB::table(‘表名’)->insert(数据)/insertGetId();
DB::table(‘表名’)->where(条件)->update(数据组)
DB::table(‘表名’)->where(条件)->delete()
查询函数:get()、first()、value()、pluck(value,key)
3、字段封装:

  • 参数是字符串列表: select('id','name as 姓名','email')
  • 参数是字符串数组: select(['id','name','email'])
    4、常用where条件:
    语法1: where(字段, 操作符, 值)
    语法2: whereBetween(字段, [起始, 结束])
    语法3: whereIn(字段, [值1,值2, ...])
    5、其他方法
  • toSql(): 查看生成的SQL语句模板
  • toArray(): 将结果对象集合转为数组
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议