Để sử dụng được Eloquent ORM lưu ý:
+ Tất cả các file phải được viết trong thư mục
app/models
+ Các file model phải được kế thừa từ lớp
Eloquent
Sử dụng Eloquent ORM trong Laravel Framework
Trước tiên mình sẽ tạo 1 file model có tên User.php với nội dung sau nhé:
1
2
3
| class User extends Eloquent { protected $table = 'users' ; } |
+ Khi model được định nghĩa là chúng ta có thể thao tác trên nó,và lớp model đều phải kế thừa từ lớp
+ Thuộc tính
+ Lưu ý rằng cột
Eloquent
+ Thuộc tính
$table
sẽ khai báo bảng dữ liệu mà ta sẽ thao tác.+ Lưu ý rằng cột
updated_at
và created_at
nên được tạo tự động, nếu bạn không muốn nó tạo tự động ngày giờ thì bạn có thề đưa thuộc tính $timestamps
về false
nhé.1.Lấy dữ liệu
a. Lấy tất cả dữ liệu trong bảng
users
:
1
2
3
4
5
6
| $users = User::all(); foreach ( $user as $row ) { echo $row ->name.' '; } |
b. Lấy 1 dòng dữ liệu thông qua khóa chính:
1
2
| $user = User::find(1); echo $user ->name; |
– Nếu không lấy được dữ liệu nào trả về từ khóa chính này thì kết quả sẽ là
– Đề đăng ký xử lý lỗi thì ta phải kích hoạt ModelNotFoundException
NULL
– Đề đăng ký xử lý lỗi thì ta phải kích hoạt ModelNotFoundException
1
2
3
4
5
| use Illuminate\Database\Eloquent\ModelNotFoundException; App::error( function (ModelNotFoundException $e ) { return Response::make( 'Not Found' , 404); }); |
c.Truy vấn sử dụng Eloquent Models
1
2
3
4
5
| $users = User::where( 'id' , '>' , 100)->take(10)->get(); foreach ( $users as $user ) { var_dump( $user ->name); } |
d. Bạn cũng có thể sử dụng hàm trong query builder
1
| $count = User::where( 'id' , '>' , 100)-> count (); |
+ Phương thức
count()
sẽ trả về tống số dòng tìm thấy phù hợp với câu điều kiên (id > 100
)2.Thêm dữ liệu (Insert)
a. Đề tạo một record mới trong bảng CSDL, đơn giản bạn tạo một thực thể của model và gọi phương thức
save
1
2
3
| $user = new User; $user ->name = 'Nobita' ; $user ->save(); |
b. Sử dụng phương thức Create
1
2
3
4
5
6
7
8
| // Create a new user in the database... $user = User::create( array ( 'name' => 'John' )); // Retrieve the user by the attributes, or create it if it doesn't exist... $user = User::firstOrCreate( array ( 'name' => 'John' )); // Retrieve the user by the attributes, or instantiate a new instance... $user = User::firstOrNew( array ( 'name' => 'John' )); |
3.cập nhật dữ liệu (Update)
a. Đề cập nhật một Model, bạn có thể truy vấn nó, thay đổi thuộc tính và lưu nó lại thông qua khóa chính
1
2
3
| $user = User::find(1); $user ->name = 'Nobita' ; $user ->save(); |
b. Đôi khi bạn muốn lưu không chỉ nó, mà toàn bộ những gì liên quan tới nó thì bạn sử dụng phương thức
push
1
| $user ->push(); |
c. Bạn có thể chạy câu lệnh update để truy vấn model theo điều kiện
1
| $affectedRows = User::where( 'id' , '>' , 100)->update( array ( 'status' => 2)); |
4.Xóa dữ liệu (Delete)
a. Để xóa một record, đơn giản bạn gọi phương thức
delete
dựa vào khóa chính của dữ liệu
1
2
| $user = User::find(1); $user -> delete (); |
b. Xóa bằng khóa
1
2
3
| User::destroy(1); User::destroy( array (1, 2, 3)); User::destroy(1, 2, 3); |
c. Tất nhiên, bạn cũng có thể xóa theo kiểu query
1
| $affectedRows = User::where( 'id' , '>' , 100)-> delete (); |
Nhận xét
Đăng nhận xét