Tôi có một hàm chung cung cấp cho tôi các tập truy vấn chung, giống như:
class Model extends Eloquent {
public static function get_queryset(){
$queryset = self::where('foo','=','bar');
// Do tons of stuff with the query and then...
return $queryset->orderBy('somefield');
}
}
Hàm này được sử dụng ở mọi nơi trong dự án của tôi, nhưng ở một điểm cụ thể, tôi cần sử dụng bộ truy vấn này nhưng thay đổi ORDER BY, giống như sau:
public static function get_specific_field(){
return self::get_queryset()->select('singlefield')->orderBy('singlefield');
}
Nếu tôi chạy mã này, ORDER BY sẽ chỉ thêm vào trước đó và tạo ra một truy vấn không hợp lệ, vì "somefield" không nằm trên các trường ĐÃ CHỌN. I E:
SELECT singlefield FROM table ORDER BY somefield ASC, singlefield ASC
Làm cách nào để xóa đơn hàng Bằng cách sử dụng lại các bộ truy vấn?