Bài giảng Phát triển phần mềm nguồn mở: Bài 13 - Nguyễn Hữu Thể
lượt xem 2
download
Eloquent ORM đi kèm với Laravel cung cấp một API ActiveRecord đơn giản và tiện lợi cho giao tiếp với database. Mỗi database table sẽ có một "Model" tương ứng để tương tác với table đó. Model cho phép bạn query dữ liệu trong table, cũng như chèn thêm các dữ liệu mới. Bài giảng này sẽ tiếp tục cung cấp cho người học những kiến thức cơ bản về eloquent ORM trong Laravel.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Phát triển phần mềm nguồn mở: Bài 13 - Nguyễn Hữu Thể
- PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ Eloquent ORM Nguyễn Hữu Thể
- Eloquent ❖ Introduction ❖ Defining Models ❖ Retrieving Models ❖ Inserting & Updating Models • Inserts • Updates ❖ Deleting Models • Soft Deleting 2
- Eloquent − Cung cấp một API ActiveRecord đơn giản và tuyệt vời khi làm việc với database. • Mỗi database table sẽ có một "Model" tương ứng để tương tác với table đó. • Model cho phép bạn query dữ liệu trong table, cũng như chèn thêm các dữ liệu mới. 3
- Định nghĩa Models − Model nằm trong thư mục app/, có thể tuỳ chỉnh trong file composer.json. − Kế thừa từ class Illuminate\Database\Eloquent\Model. − Câu lệnh một model có tên Flight: php artisan make:model Flight − Nếu muốn tạo database migration đi kèm với model thì sử dụng them cờ --migration hoặc -m: php artisan make:model Flight –migration Hoặc php artisan make:model Flight -m 4
- Eloquent Model: Cấu trúc class namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { // } 5
- Eloquent Model: Liên kết model với table Sử dụng thuộc tính: $table namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { //Kết nối model với table có tên my_flights protected $table = 'my_flights'; } 6
- Eloquent Model: Primary Keys • Eloquent cũng coi mỗi table có một column là primary key tên là id. • Chúng ta có thể định nghĩa một $primaryKey để đổi tên column này. Ví dụ: $primaryKey = 'userid' • Ngoài ra, Eloquent cũng coi primary key là một giá trị nguyên tăng dần. • Nếu muốn sử dụng primary không tăng dần hay không phải là dạng số, cần thay đổi thuộc tính $incrementing = false. 7
- Eloquent Model: Timestamps • Mặc định, Eloquent cần hai cột created_at và updated_at có mặt trong các bảng. • Nếu bạn không muốn, thiết lập thuộc tính $timestamps trong model thành false: namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { protected $table = 'my_flights'; public $timestamps = false; //Tắt/bật chế độ tự động quản lý ‘created_at’ và ‘update_at’ nếu table có dùng 2 thuộc tính có tên này. } 8
- Kết nối database Tất cả các Eloquent model sẽ sử dụng kết nối database mặc định được cấu hình. Nếu bạn muốn sử dụng một kết nối khác cho model, sử dụng thuộc tính $connection: namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { protected $connection = 'connection-name'; } 9
- Các phương thức trong model Cho trước class model User: $user = new User(); Tạo 1 biến đối tượng thuộc lớp Model đã có echo $user->name; Lấy giá trị thuộc tính của model $user = User::all(); Lấy toàn bộ dữ liệu trong table $user = User::find(giá trị khóa chính); Tìm user theo khóa chính $user->toJson(); Trả dữ liệu kiểu JSON $user->save(); Lưu (hoặc cập nhật) dữ liệu từ model vào table $user->delete(); Xóa dữ liệu trong table User::destroy(giá trị khóa chính); Xóa dữ liệu bằng khóa chính trong table 10
- Lấy nhiều Models Khi đã tạo được một model và đã liên kết đến table, bạn có thể sẵn sàng truy xuất dữ liệu từ database. use App\Flight; $flights = App\Flight::all(); foreach ($flights as $flight) { echo $flight->name; } 11
- Thêm ràng buộc bổ sung Tạo ràng buộc cho các query, sử dụng hàm get() để lấy kết quả: $flights = App\Flight::where('active', 1) ->orderBy('name', 'desc’) ->take(10) ->get(); 12
- Ví dụ Table sanpham đã được tạo trong bài Migration SanPham 13
- Ví dụ - Tạo model sanpham C:\xampp\htdocs\laravelk>php artisan make:model SanPham Model created successfully. namespace App; Route::get ( 'model/sanpham/save', function use () { Illuminate\Database\Eloquent\Model; $sanpham = new App\SanPham(); class SanPham extends Model{ $sanpham->ten = "Galaxy S7"; protected $table = "sanpham"; $sanpham->soluong = 100; $sanpham->save(); //Tắt timestamp trong table echo "Đã save()"; public $timestamps = false; } ); } 14
- Ví dụ - Test model sanpham Test 15
- Ví dụ - Save model sanpham // Save có tham số Route::get ( 'model/sanpham/save/{ten}', function ($ten) { $sanpham = new App\SanPham (); $sanpham->ten = $ten; $sanpham->soluong = 100; $sanpham->save (); echo "Đã save() " . $ten; } ); 16
- Ví dụ - Save model sanpham 17
- Ví dụ - Save model sanpham 18
- Ví dụ - Load all model sanpham // all Route::get ( 'model/sanpham/all', function () { $sanpham = App\SanPham::all()->toJson(); echo $sanpham; } ); 19
- Ví dụ - Print Array // Array Route::get ( 'model/sanpham/all', function () { $sanpham = App\SanPham::all()->toArray(); var_dump($sanpham); } ); 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Phát triển phần mềm mã nguồn mở: Chương 2 - ThS. Dương Thành Phết
21 p | 104 | 12
-
Bài giảng Phát triển phần mềm mã nguồn mở: Chương 1 - ThS. Dương Thành Phết
31 p | 113 | 10
-
Bài giảng Phát triển phần mềm hướng dịch vụ: Phần 1
56 p | 49 | 8
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux Kernel - Bùi Minh Quân
32 p | 132 | 8
-
Bài giảng Phát triển phần mềm mã nguồn mở: Quản lý gói phần mềm - TS. Ngô Bá Hùng
12 p | 110 | 8
-
Bài giảng Phát triển phần mềm hướng dịch vụ: Phần 2
65 p | 30 | 7
-
Bài giảng Phát triển phần mềm mã nguồn mở: Lập trình C/Linux - Bùi Minh Quân
29 p | 94 | 6
-
Bài giảng Phát triển phần mềm mã nguồn mở: Mở đầu - Bùi Minh Quân
12 p | 104 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Thị trường điện tử
43 p | 51 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux user management - Bùi Minh Quân
28 p | 123 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu về phần mềm mã nguồn mở - Bùi Minh Quân
39 p | 93 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux operating system - Bùi Minh Quân (tt)
43 p | 91 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu
16 p | 80 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: IDE và SDK
40 p | 38 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: MVC
12 p | 40 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux operating system - Bùi Minh Quân
15 p | 97 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu Drupal
49 p | 29 | 3
-
Bài giảng Phát triển phần mềm mã nguồn mở: Zend framework
11 p | 33 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn