Với mô hình hùng biện thêm phạm vi rất dễ dàng:Laravel 4: Cách thêm phạm vi vào bảng DB ::?
public function scopeMyScope($query)
{
// Do stuff to that $query
}
Nhưng làm thế nào để thêm phạm vi để DB::table
?
tôi sử dụng truy vấn này để có được lượt xem:
$views = DB::table('page_views')
->where('id', $this->id)
->where('agent', 'NOT LIKE', '%bot%')
->count(DB::raw('distinct session, DATE(created_at)'));
Tôi cũng hiển thị các trang phổ biến nhất vv với các truy vấn khác, nhưng với sự where
điều kiện tương tự. Vì vậy, tôi muốn chỉ xác định các điều kiện where
của mình một lần và sử dụng lại chúng trong tất cả các truy vấn trang DB::table
truy vấn khác.
Mẹo hay, điều này đã cho tôi ý tưởng tạo một lớp 'PageViewQueryBuilder' mở rộng' DB' và có hàm 'table' riêng của nó:' $ que ry = parent :: table ('page_views') -> where ('user', null) 'etc, v.v. Thử nghiệm với nó ngay bây giờ. –
Tuyệt vời! Hãy cho tôi biết nếu bạn cần bất kỳ sự trợ giúp nào :) – lukasgeiter
Tôi đã triển khai [giải pháp] này (http://stackoverflow.com/a/28429629/3903565). Cảm ơn đã cho tôi ý tưởng :) –