Cài đặt:
- Tạo Migration cho view:
....
public function up()
{
DB::statement("
CREATE OR REPLACE view user_view_1
AS
SELECT
users.id,
users.name,
users.email,
users.status,
users.role,
users.gender,
users.phone_number,
users.address
FROM
users
WHERE
users.role = 1;
");
}
....
- Tạo Model cho view vừa tạo:
...
class UserView1 extends Model
{
use HasFactory;
protected $table = 'user_view_1';
protected $fillable = [];
}
...
- Sử dụng:
....
protected $user1View;
public function __construct(
UserView1 $user1View,
) {
$this->user1View = $user1View;
}
....
$list = $this->user1View->get();
....
- Khi này View vừa tạo sẽ được sử dụng như 1 bảng bình thường trong database
Có thể sử dụng view này thay thế cho trường hợp:
- Hiển thị dữ liệu bảng khi Join nhiều bảng với nhau, sẽ hữu ích khi dùng cho các chức năng sắp xếp, tìm kiếm,…
- Khi dữ liệu trong 1 bảng có điều kiện hiển thị riêng biệt
- ….