Laravel框架Eloquent ORM簡介、模型建立及查詢數(shù)據(jù)操作詳解
本文實(shí)例講述了Laravel框架Eloquent ORM簡介、模型建立及查詢數(shù)據(jù)操作。分享給大家供大家參考,具體如下:
注:以下知識點(diǎn)可能有不全面之處,望見諒
NO.1Eloquent ORM簡介
Laravel所自帶的Eloquent ORM是一個(gè)優(yōu)美、簡潔的ActiveRecord實(shí)現(xiàn),用來實(shí)現(xiàn)數(shù)據(jù)庫操作
每個(gè)數(shù)據(jù)表都有與之相對應(yīng)的“模型(Model)”用于和數(shù)據(jù)交互
NO.2模型的建立
最基礎(chǔ)的模型代碼如下:
namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { //指定表名 protected $table = 'student'; //指定id protected $primaryKey = 'id'; }
將他創(chuàng)建于app目錄下,命名為Student.php
NO.3查詢數(shù)據(jù)
首先在查詢之前,我先讓你們看一下我的數(shù)據(jù)庫
數(shù)據(jù)如上,然后查詢
1.all方式
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $students = Student::all(); dd($students); } }
顯示數(shù)據(jù)庫里的所有數(shù)據(jù)
2.find方式
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $students = Student::find(1); dd($students); } }
查找指定數(shù)據(jù)
3.findOrFail方式
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $students = Student::findOrFail(1); dd($students); } }
如果他沒查到指定的數(shù)據(jù),那么他會報(bào)錯(cuò),而find若是沒有查到該函數(shù),只會彈出一個(gè)null
4.查詢構(gòu)造器的使用
- 1.get方式使用
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $students = Student::get(); dd($students); } }
他會得到一個(gè)完整的數(shù)據(jù)信息,和原本的意義沒有區(qū)別
- 2.first方式使用
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::where('id','>',1) ->orderBy('age','desc') ->first(); dd($student); } }
當(dāng)id大于一的時(shí)候,獲取一個(gè)最大值的age
- 3.where方式使用
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::where('id','>',1) ->get(); dd($student); } }
- 4.chunk方式使用
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::chunck(2,function($student){ var_dump($student); }); } }
5.聚合函數(shù)的使用
- 1.count函數(shù)
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::count(); dd($student); } }
- 2.max函數(shù)
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::max('age'); dd($student); } }
- 3.min函數(shù)
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::min('age'); dd($student); } }
- 4.avg函數(shù)
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::avg('age'); dd($student); } }
- 5.sum函數(shù)
代碼如下:
namespace App\Http\Controllers; use App\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function orm1() { $student = Student::sum('age'); dd($student); } }
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作示例
這篇文章主要介紹了基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了thinkPHP5框架整合QueryList爬取數(shù)據(jù)存入mysql相關(guān)操作技巧及注意事項(xiàng),需要的朋友可以參考下2019-05-05Yii2基于Ajax自動(dòng)獲取表單數(shù)據(jù)的方法
這篇文章主要介紹了Yii2基于Ajax自動(dòng)獲取表單數(shù)據(jù)的方法,涉及Yii結(jié)合ajax調(diào)用鼠標(biāo)事件動(dòng)態(tài)查詢表單的相關(guān)技巧,需要的朋友可以參考下2016-08-08PHP時(shí)間戳 strtotime()使用方法和技巧
php strtotime()解釋如何使用,看了下面的文章就要以學(xué)習(xí)到了。下面還有php文檔函數(shù)解釋。2013-10-10CI(CodeIgniter)框架中URL特殊字符處理與SQL注入隱患分析
這篇文章主要介紹了CI(CodeIgniter)框架中URL特殊字符處理與SQL注入隱患,結(jié)合實(shí)例形式分析了CodeIgniter框架中針對特殊字符的過濾及SQL注入隱患的相關(guān)原理,需要的朋友可以參考下2019-02-02