从laravel中的表中选择行

时间:2015-05-14 15:46:02

标签: php mysql laravel

我有两个不同的数据库表entriesbackers

我想通过比较entries表格中user->emailemail的电子邮件地址来选择backers中的行。然后我需要获取那些匹配行的crowd_fund_id来获取表entries中的行。

我尝试了以下查询但没有工作:

$donations = DB::table('entries')
                     ->join(
                         'backers', 
                         function($join, $user){
                             $join->on(
                                 'entries.crowd_id', 
                                 'backers.crowd_fund_id'
                             )
                             ->where(
                                 'backers.email', 
                                 $user->email
                             );
                         }
                     )
                     ->get();

$donations = Entries::where(
    'crowd_id', 
    Backers::where('email', $user->email)->pluck('crowd_fund_id')
)->get();

entries获取行的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

你的语法有点不对......

$donations = DB::table('entries')
    ->join('backers', function($join) use ($user)
    {
        $join->on('entries.crowd_id', '=', 'backers.crowd_fund_id')
             ->where('backers.email', '=', $user->email);
    })->get();

第二个查询给出了一个结果,因为您使用的是pluck()。如果您只想要crowd_fund_id的列表(数组),请使用->lists('crowd_fund_id')而不是->pluck()

答案 1 :(得分:0)

如果你这样做会更简单

Banker::join('entries','entries.crowd_id','=','bankers.crowd_fund_id')
->where('bankers.email',$user->email)->get();