Tóm Tắt
Eloquent ORM trong Laravel 8
Trình duyệt của bạn không tương hỗ nghe audio .
Laravel 8 cung cấp 2 kiểu truy vấn phổ biến với database là Eloquent ORM và Query Builder. Nếu như Query Builder làm việc trực tiếp với với database thông qua các tủy vấn thì Eloquent ORM lại sử dụng Model để tương tác với Database. Trong bài viết này chúng ta sẽ tìm hiểu về Eloquent ORM trong Laravel 8 và cách sử dụng Model trong Laravel 8 luôn các bạn nhé.
1. Eloquent ORM là gì?
ORM(Object Relational Mapping) đây là tên gọi chỉ việc ánh xạ các record dữ liệu trong hệ quản trị cơ sở dữ liệu sang dạng đối tượng mà mã nguồn đang định dạng trong class.
Bạn đang đọc: Eloquent ORM trong Laravel 8 – Chickgolden
Bạn đang đọc : Eloquent ORM trong Laravel 8
Eloquent ORM : Là một giải pháp tương tác với cơ sở tài liệu sử dụng kỹ thuật ORM giúp lập trình viên thao tác thuận tiện hơn với DB.Eloquent Model ( Model ) – là Model thao tác trực tiếp với DB, xử lý và giải quyết và xử lý logic trách nhiệm và trả về tài liệu cho controller. Eloquent ORM trong Laravel 8 sử dụng những Model để tương tác với cơ sở tài liệu, thường thì mỗi bảng của database sẽ được ánh xạ qua ‘ Model ’, và Mã Sản Phẩm này được sử dụng để tương tác với bảng .
2. Cách gọi Model.
Giả sử toàn bộ tất cả chúng ta tạo ra Mã Sản Phẩm Truyencuatui để quản trị tài liệu của bảng truyencuatuiBảng truyencuatui gồm những trường như sau
Tạo model truyencuatui
php artisan make:model Truyencuatui
Chúng ta khai báo như sau
{
protected $table = ‘truyencuatui’;
protected $timestamps = false;
}
Để gọi Model trong Controllers
Bắt buộc toàn bộ tất cả chúng ta phải gọi namespace của Model đó trong Controllers. Ví dụ mình tạo 1 controller truyencontroller dùng để quản trị việc thêm sửa xóa truyện vào database .
php artisan make:controller truyencontroller --resource
Muốn gọi Model truyencuatui trong truyencontroller toàn bộ tất cả chúng ta phải khai báo namespace của Mã Sản Phẩm
use App\Models\truyencuatui;
Lúc này code truyencontroller như sau
use App\Models\truyencuatui;
use Illuminate\Http\Request;
class truyencontroller extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}Nếu không khai báo ( gọi namespace ) từ đầu khi gọi Model tất cả chúng ta phải gọi cả namespace .
App\Models\Truyencuatui ::something
Còn nếu muốn gọi Mã Sản Phẩm trong Route thì những bạn không cần gọi namespace mà những bạn trọn vẹn hoàn toàn có thể dùng luôn với cú pháp .
App\TenModel::someThing;
VD : mình muốn gọi Model Truyencuatui trong route .
App\Models\Truyencuatui ::something
3. Các câu truy vấn hay dùng trong Eloquent ORM.
Chú ý : Tất cả những cú pháp dưới đây mình lấy Model Truyencuatui làm mẫu nhé
a. Lấy ra dữ liệu trong bảng.
Lấy ra tổng thể và toàn diện tài liệu trong bảng .
Truyencuatui::all();
Để minh họa ví dụ này tất cả chúng ta tạo dùng controller truyencontroller.php ở trên để lấy tài liệu truyền đến view .
Thêm đoạn code sau vào function index ( )
public function index() { $truyen = Truyencuatui ::all(); return view('list_truyen',['list_truyen'=>$truyen]); }
Để hiển thị tài liệu toàn bộ tất cả chúng ta tạo view có tên list_truyen. blade.php trong resources \ views với nội dung như sau :
List Truyện
ID | Tên Truyện | Tác Giả | Số Chương |
{{ $truyen->id}} | {{ $truyen->tentruyen}} | {{ $truyen->tacgia}} | {{ $truyen->chap}} |
Đừng quên khai báo route list_truyen trong routes / web.php
Route::get('list_truyen',[truyencontroller::class,'index']);
Xong rồi toàn bộ tất cả chúng ta cùng xem hiệu suất cao nhé : http://localhost:8000/list_truyen
b. Lấy ra một dòng dữ liệu thông qua khóa chính.
Truyencuatui::find(1);
Hoặc
Truyencuatui::take(1)->get();
c. Truy vấn điều kiện.
Bằng:
Truyencuatui::where('id', 5)->get();
Lớn hơn, nhỏ hơn,.. (giống Query Buider)
Truyencuatui::where('id', '>', '5')->get(); Truyencuatui::where('id', 'get();
d. Chọn cột dữ liệu.
Truyencuatui::select('id', 'tentruyen')->get();
e. Đếm dữ liệu.
Truyencuatui::all()->count();
f. Thêm dữ liệu.
$news = new Truyencuatui(); $news->tentruyen= "Chiên Thiên Giới"; $news->save();
Ở trên mình đã thêm vào cột tentruyen nội dung là ‘ Chiên Thiên Giới ‘
g. Sửa dữ liệu.
Ví Dụ mình muốn sửa tentruyen của bảng truyencuatui có id = 1 .
$update= Truyencuatui::find(1); $update->name= 'Phục Thiên Thị'; $update->save();
Hoặc
Truyencuatui::where('id', 1)->update(['tentruyen' => 'Phục Thiên Thị']);
h. Xóa
Cách 1:
$del_truyen= Truyencuatui::find(1); $del_truyen->delete();
Cách 2:
Truyencuatui::destroy(1);
Trong đó : 1, 2, 3 là những id ( primary ) của bảng cần truy vấn .
Cách 3:
Truyencuatui::where('id', 1)->delete();
3. Lời kết.
Phần trên mình đã trình bày cho các bạn về Eloquent ORM trong Laravel 8 rồi, đây là một phần cũng rất là quan trọng trong project nên mình mong các bạn cố gắng đọc cho kĩ để hiểu hơn về nó.
Source: https://final-blade.com
Category: Kiến thức Internet