【问题标题】:Laravel Order By a aliasLaravel 按别名排序
【发布时间】:2013-07-22 14:12:19
【问题描述】:

在下面的代码中,如果我删除“解决方法”,则找不到用户名列,如何在 get 命令之前设置别名?有窍门吗?

    //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"));

【问题讨论】:

  • user_name 来自查询之外。这不是一种解决方法。这是唯一的办法。

标签: sql laravel query-builder


【解决方案1】:

documentation

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

如果你设置一个键值变量而不是“user_name”它应该做你想做的事?

再见

【讨论】:

  • 我尝试了这个,但没有得到任何覆盖选择和用户名不再存在,谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-09-20
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 2019-08-31
  • 1970-01-01
  • 2013-01-07
相关资源
最近更新 更多