搜索功能查找相关表中参数的值

时间:2017-02-23 04:51:30

标签: php laravel laravel-eloquent

我有2张桌子,商家和交易。商家有(中间,姓名,年龄)和交易有(id,mid,order_no,)。我已经通过eagerloading显示了像(orderid,name)这样的数据。现在我在顶部有搜索功能,我可以按商家名称搜索所有订单。我怎么做? IM'尝试这样的事情

  public function search($search){
      $query = Transaction::with('themerchant')
      ->join('merchants','transactions.mid', '=', 'merchants.mid' )
      ->select('merchants.name', '=' , '%'.$search.'%')->paginate(10);
      return $query;
  }

1 个答案:

答案 0 :(得分:1)

哦,你正在使用eagerLoading 这样做

public function search($search){
  return Transaction::with(['themerchant' => function($query){
      $query->where('name', 'like', '%'.$search.'%');
  }])->paginate(10);;

}

如果您想要确切的商家匹配,请更改此类

...
->where('name', '=' , $search)
...

如果您想使用加入

public function search($search){
    return Transaction::join('merchants', 'merchants.mid', '=', 'transactions.mid')
    ->where('merchants.name', 'like', '%'.$search.'%')
    ->get();
}