博客列表 >Laravel 链式调用 增删改查

Laravel 链式调用 增删改查

海阔天空
海阔天空原创
2020年06月06日 20:19:26787浏览

Laravel 链式调用 增删改查

  1. 控制器 home.php
  2. <?php
  3. namespace App\Http\Controllers;
  4. use Illuminate\Support\Facades\DB;
  5. use Illuminate\Http\Request;
  6. class Home extends Controller
  7. {
  8. //查询多条记录
  9. public function list(){
  10. // echo '<pre>';
  11. $res=DB::table('article')->get()->all();
  12. // print_r($res);
  13. return view('testobject',['result'=>$res]);
  14. }
  15. //查询多条记录,部分字段
  16. public function list2(){
  17. echo '<pre>';
  18. $res=DB::table('article')->select('cate_id as CID','title as 标题')->where('cate_id','>',4)->get()->all();
  19. print_r($res);
  20. }
  21. //like 查询
  22. public function likes(){
  23. // $res=DB::table('article')->where("title",'like','%版本%')->where('id',4)->get()->all();
  24. $res=DB::table('article')->where("cate_id",4)->orWhere('cate_id',3)->get()->all();
  25. return view('testobject',['result'=>$res]);
  26. }
  27. //where in 查询
  28. public function wherein(){
  29. $res=DB::table('article')->whereIn("id",[1,2,5])->get()->all();
  30. // $res=DB::table('article')->whereIn("id",[1,2,5])->tosql();
  31. // print($res);
  32. return view('testobject',['result'=>$res]);
  33. }
  34. //join 连表查询
  35. public function joins(){
  36. // $res=DB::table('article')->join('users','users.id','=','article.uid')->get()->all();
  37. $res=DB::table('article')->join('users','users.id','=','article.uid')
  38. ->select('article.id','article.uid','article.cate_id','users.name as nickname','article.title')
  39. ->get()->all();
  40. echo '<pre>';
  41. print_r($res);
  42. }
  43. //聚合 查询
  44. public function pvs(){
  45. // $res=DB::table('article')->get()->all();
  46. // //原生计算平均值
  47. // $avg=0;
  48. // foreach ($res as $key=>$value){
  49. // $avg+=$value->pv;
  50. // }
  51. // $avg=$avg/count($res);
  52. // echo '<pre>';
  53. // print_r($avg);
  54. $res=DB::table('article')->avg('pv');
  55. // $res=DB::table('article')->max('pv');
  56. // $res=DB::table('article')->min('pv');
  57. // $res=DB::table('article')->sum('pv');
  58. // $res=DB::table('article')->count();
  59. $res=(int)$res;
  60. print_r($res);
  61. }
  62. //增加数据
  63. public function insert2(){
  64. $item1=['uid'=>1,'cate_id'=>5,'title'=>'测试插入多条insert语句','pv'=>200];
  65. $item2=['uid'=>2,'cate_id'=>3,'title'=>'测试插入多条insert语句','pv'=>100];
  66. $data[]=$item1;
  67. $data[]=$item2;
  68. $res=DB::table('article')->insert($data);
  69. var_dump($res);
  70. }
  71. //增加数据并返回主键
  72. public function insert3(){
  73. $item=['uid'=>2,'cate_id'=>3,'title'=>'测试插入insert语句并返回id值','pv'=>50];
  74. $res=DB::table('article')->insertGetId($item);
  75. var_dump($res);
  76. }
  77. //修改数据
  78. public function update2(){
  79. $res=DB::table('article')->whereIn('id',[8,10])->update(array('title'=>'updta测试'));
  80. var_dump($res);
  81. }
  82. //删除数据
  83. public function delete2(){
  84. $res=DB::table('article')->where('id',9)->delete();
  85. var_dump($res);
  86. }
  87. }
  1. 路由 web.php
  2. <?php
  3. use Illuminate\Support\Facades\Route;
  4. /*
  5. |--------------------------------------------------------------------------
  6. | Web Routes
  7. |--------------------------------------------------------------------------
  8. |
  9. | Here is where you can register web routes for your application. These
  10. | routes are loaded by the RouteServiceProvider within a group which
  11. | contains the "web" middleware group. Now create something great!
  12. |
  13. */
  14. Route::get('/', function () {
  15. echo date("Y-m-d H:i:s");
  16. return view('welcome');
  17. });
  18. //查询多条记录
  19. Route::get('/dblist','home@list');
  20. //查询多条记录,部分字段
  21. Route::get('/dblist2','home@list2');
  22. //like查询
  23. Route::get('/dblikes','home@likes');
  24. //where in 查询
  25. Route::get('/dbwherein','home@wherein');
  26. //join 连表 查询
  27. Route::get('/dbjoins','home@joins');
  28. // 聚合 计算查询
  29. Route::get('/dbpvs','home@pvs');
  30. //增加数据
  31. Route::get('/dbinsert2','home@insert2');
  32. //增加数据并返回主键
  33. Route::get('/dbinsert3','home@insert3');
  34. //修改数据
  35. Route::get('/dbupdate2','home@update2');
  36. //删除数据
  37. Route::get('/dbdelete2','home@delete2');
  1. 视图 testobject.blade.php
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>数据库查询2</title>
  8. <link rel="stylesheet" href="/layui/css/layui.css" />
  9. <script src="/layui/layui.js"></script>
  10. </head>
  11. <body>
  12. <!-- <?php
  13. echo "<pre>";
  14. print_r($result);?> -->
  15. <table class="layui-table">
  16. <thead>
  17. <tr>
  18. <td>ID</td>
  19. <td>CATE_ID</td>
  20. <td>标题</td>
  21. </tr>
  22. </thead>
  23. <tbody>
  24. <?php foreach($result as $val){?>
  25. <tr>
  26. <td><?php echo $val->id?></td>
  27. <td><?php echo $val->cate_id?></td>
  28. <td><?php echo $val->title?></td>
  29. </tr>
  30. <?php }?>
  31. </tbody>
  32. </table>
  33. </body>
  34. </html>

效果图如下:

总结:
1、Laravel 框架链式语法 容易理解便于记忆,关键词大多与php原生语法一致。开发效率较高。
2、条件语句中尽量用 “=”,效率高;避免用“>”或“<”,大数据量时速度很慢。在必须使用一个范围内查询时,推荐使用whereIn(‘字段’,[…])。
3、all()得出的数组,元素值是对象,可以通过 对象->属性名 调用;也可以通过array()将其转为数组,利用 数组[‘键名’]调用。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议