2013-07-23 4 views
-1

в приведенном ниже коде i get user_name columm not found, если я удаляю свой «обходной путь», как я могу установить псевдоним перед командой get? есть трюк?Laravel Order By a alias

//Select 
    $qb = DB::table('log as l'); 

    //Joins 
    $qb->join('user as u', 'l.user_id', '=', 'u.id'); 

    //Orders   
    if($sort[0]["field"]=="user_name")// This is a workaround for my problem 
     $sort[0]["field"] = "u.name"; 

    $qb->orderBy($sort[0]["field"],$sort[0]["dir"]); 

    //Wheres 
    Data::applyFilter($qb,$filters); 

    $total = $qb->count("l.id"); 

    $qb->skip($skip) 
     ->take($take); 

    $result = $qb->get(array("l.id", "l.action", "l.entity_type", "l.entity_id", "u.name as user_name", "l.datetime")); 
+0

'user_name' происходит вне запроса. это не обходной путь. это единственный путь. – itachi

ответ

0

В documentation есть

$users = DB::table('users')->select('name as user_name')->get(); 

Если вы установите переменную ключ-значение вместо «user_name» он должен делать то, что вы хотите?

Bye

+0

Я пробовал это, но не получаю ничего лишнего select и имя_пользователя не существует снова, спасибо! – JoeLoco