Laravel 5.2 DB查询

时间:2016-10-27 04:01:52

标签: php laravel

我正在尝试使用DB来构建一个类似的查询:

获取Distributors所有属于User的{​​{1}} AccountsNotes

我无法绕过那个问题。以下是我的工作原理,因为它会在一个数组中吐出我需要的信息但有两个问题:note name会覆盖account name,因为它们是两者都叫了,我不能通过$user->替换2

工作(种类)

        $user = Auth::user();

        $accounts   = DB::table('distributors')
                        ->join('accounts', function ($join) {
                                    $join->on('distributors.vip_abbv', '=', 'accounts.dist_abbv')
                                         ->where('distributors.user_id', '=', 2);
                                })
                        ->join('notes', 'notes.account_id', '=', 'accounts.id')
                        ->select('accounts.name', 'notes.*')
                        ->get();

我需要什么

$ user = Auth :: user();

    $accounts   = DB::table('distributors')
                    ->join('accounts', function ($join, $user) {
                                $join->on('distributors.vip_abbv', '=', 'accounts.dist_abbv')
                                     ->where('distributors.user_id', '=', $user->id);
                            })
                    ->join('notes', 'notes.account_id', '=', 'accounts.id')
                    ->select('accounts.name (this is overwritten. can I change it to come out account_name so it doesnt?)', 'notes.*')
                    ->get();

2 个答案:

答案 0 :(得分:0)

尝试使用此帐户名称:

  ->select('accounts.name as custom_account_name')

希望这有帮助。

答案 1 :(得分:0)

试试这个:

$user = Auth::user();
DB::table('distributors')
    ->join('accounts', function ($join) use ($user) {
          $join->on('distributors.vip_abbv', '=', 'accounts.dist_abbv')
               ->where('distributors.user_id', '=', $user->id);
          })
    ->join('notes', 'notes.account_id', '=', 'accounts.id')
    ->select('accounts.name as account_name', 'notes.*')
    ->get();