2013-06-24 13 views
6
//Earlier in the code, in each Model: 
query = ModelName::select('table_name.*') 

//Later in the code in a function in a Trait class that is always called 

    if ($column == 'group_by') 
    { 
     $thing_query->groupBy($value); 
     $thing_query->select(DB::raw('COUNT('.$value.') as count')); 
    } 

Czy istnieje sposób dodania lub włączenia osobnej funkcji wyboru w elokwentnym narzędziu do tworzenia zapytań?Laravel Fluent dodaj select() w oddzielnych miejscach?

Rzeczywiste -> select() ustawione wcześniej, a następnie wywoływana jest ta funkcja. Chciałbym dodać warunkowo kolumnę w tej późniejszej funkcji, do której przekazywane jest zapytanie.

Odpowiedz

-1

Spróbuj tego:

$thing_query->groupBy($value)->get(DB::raw('COUNT('.$value.') as count'));

Ponadto, jeśli jesteś po prostu staramy się liczyć i nie wybrać wiele rzeczy, których można użyć ->count() zamiast ->get()

+0

To nie dodać licznik do moich innych wybranych zapytań, po prostu zwraca go sama – Damon

0

Tak po prostu wstawić blok, chcesz wykonać jako funkcję .... zgodnie z dokumentacją na Parameter Grouping, możesz zrobić tak ... przekazując funkcję Gdzie ...

Ten kod poniżej pro Bably nie zrobi tego, co chcesz, ale jest to coś, na czym możesz się oprzeć i bawić.

DB::table('users') 
     ->where('name', '=', 'John') 
     ->orWhere(function($query) 
     { 
      $query->group_by($value); 
        ->select(DB::raw('COUNT('.$value.') as count')); 
     }) 
     ->get(); 
Powiązane problemy