Header Ads Widget

Sử dụng Eloquent ORM trong Laravel


Để 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 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à 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