从多个表中获取数据

时间:2014-11-18 06:42:13

标签: php search laravel

我有一些表,其中一个是用户表,我希望通过搜索用户名从该表中获取id,第二个是prize_info表,我想通过搜索奖品从这里获取user_id,毕竟我想要获取prize_info.user_id和user.id.what是laravel4中这个搜索部分的最佳方式?这是我的代码

     $search = '%'.Input::get('keywords').'%';
    $pages      = DB::table('user')
    ->select('user.id','user.username')
    ->where('username', 'LIKE', $search)->get();

    $blogitems  = DB::table('prize_info')
    ->select('prize_info.id', 'prize_info.prize_name', 'prize_info.user_id')
    ->where('prize_name', 'LIKE', $search)->get();

您对上述代码的看法是什么? 我通过这条线检查结果但它不起作用!

$results = $pages->union($blogitems)->take(30)->get();

请帮助我!最好的考虑

2 个答案:

答案 0 :(得分:0)

我建议你用Laravel的Eloquent ORM Relationships来做这件事。您可以使用可用的关系轻松获取相关记录;

  1. 一对1
  2. 1对许多
  3. 属于关联
  4. BelongsToMany
  5. 的hasMany
  6. HasOne
  7. 多态表(使用数据透视表)

答案 1 :(得分:0)

您可以使用:

$search = '%'.Input::get('keywords').'%'
$results = DB::table('user')
                    ->select('user.id','user.username','prize_info.id', 'prize_info.prize_name', 'prize_info.user_id')
                    ->leftJoin('prize_info','user.id','prize_info.user_id')
                    ->take(30)
                    ->get();