Eloquent ORM trong Laravel 5.0 cung cấp cách thức chuyển đổi cơ sở dữ liệu quan hệ sang mô hình đối tượng. Eloquent ORM làm việc trên cơ sở ActiveRecord. Mỗi bảng cơ sở dữ liệu sẽ được ánh xạ thành Model tương ứng, và Model này được sử dụng để tương tác với bảng dó.
Mặc định tất cả các Model được lưu trong thư mục App nhưng cũng có thể đặt chúng ở bất kỳ đâu mà có thể nạp tự động tùy theo file composer.json. Tất cả các Eloquent đều kế thừa lớp Illuminate \ Database\ Eloquent \ Model.
Ví dụ: Định nghĩa User model
class User extend Model{
}
Cũng có thể phát sinh tự động các Model sử dụng lệnh make:model
php artisan make:model User
Khi tạo model User như trên Laravel 5.0 mặc định tên bảng thực sự trong cơ sở dữ liệu là users, chúng ta có thể chỉ định tên bảng sẽ tương tác bằng cách định nghĩa thuộc tính table cho model.
class User extend Model{
protected $table = “my_users”;
}
Truy vấn dữ liệu từ model
Lấy về tất cả các bản ghi:
$users=User::all();
Lấy về một bản ghi với khóa chính được chỉ định
$user=User::find(1);
Truy vấn sử dụng mệnh đề where
$users=User::where('votes','>',100)->take(10)->get();
foreach($usersas$user){
var_dump($user->name);
}
Truy vấn sử dụng các hàm tích hợp
$count=User::where('votes','>',100)->count();
Tạo mới một bản ghi trong cơ sở dữ liệu từ model bằng cách tạo ra một thể hiện của model và triệu gọi phương thức save()
$user=newUser;
$user->name='John';
$user->save();
Cập nhật dữ liệu sử dụng model
Để cập nhật dữ liệu sử dụng model, cần truy vấn lấy về dữ liệu, thay đổi giá trị theo mong muốn và sử dụng phương thức save() để lưu.
$user=User::find(1);
$user->email='john@foo.com';
$user->save();
Cũng có thể thực hiện các lệnh cập nhật dưới dạng các câu truy vấn
$affectedRows=User::where('votes','>',100)->update(['status'=>2]);
Để xóa bản ghi trong cơ sở dữ liệu sử dụng model chúng ta triệu gọi phương thức delete() của thể hiện model.
$user=User::find(1);
$user->delete();
Hoặc có thể thực hiện lệnh xóa dưới dạng câu truy vấn như sau:
$affectedRows = User::where('votes', '>', 100)->delete();
» Tin mới nhất:
» Các tin khác: