Trong Laravel, Model là một lớp đại diện cho một bảng trong cơ sở dữ liệu của ứng dụng. Model cho phép người dùng thao tác với dữ liệu trong bảng thông qua các phương thức của nó.
Một Model được định nghĩa trong Laravel bằng cách tạo một class extends từ lớp Illuminate\Database\Eloquent\Model
. Ví dụ, để định nghĩa một Model cho bảng “users”, bạn có thể tạo một file “User.php” với nội dung như sau:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class User extends Model { use HasFactory; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; }
Trong đoạn mã trên, chúng ta đã định nghĩa một Model “User” với các thuộc tính $fillable, $hidden và $casts. Các thuộc tính này giúp xác định các trường có thể được gán dữ liệu, các trường được ẩn khi trả về dữ liệu dưới dạng mảng, và các trường được chuyển đổi sang các kiểu dữ liệu cụ thể.
Sau khi định nghĩa Model, bạn có thể sử dụng các phương thức của nó để truy xuất dữ liệu trong bảng tương ứng. Ví dụ:
- Lấy tất cả các bản ghi trong bảng “users”:
$users = App\Models\User::all();
- Lấy bản ghi đầu tiên trong bảng “users”:
$user = App\Models\User::first();
- Lấy bản ghi với id tương ứng trong bảng “users”:
$user = App\Models\User::find($id);
- Tạo một bản ghi mới trong bảng “users”:
$user = new App\Models\User; $user->name = 'John Doe'; $user->email = '[email protected]'; $user->password = bcrypt('password'); $user->save();
- Cập nhật một bản ghi đã tồn tại trong bảng “users”:
$user = App\Models\User::find($id); $user->name = 'Jane Doe'; $user->save();
Đây chỉ là một vài ví dụ về cách sử dụng Model trong Laravel. Model còn có rất nhiều phương thức khác để giúp bạn thao tác với dữ liệu trong cơ sở dữ liệu.