如何从laravel 5.1中的外键获取数据?

时间:2015-11-16 05:35:47

标签: php laravel

我正在使用laravel 5.1进行我的新项目智能搜索。 我的问题是使用类似查询来搜索该表来从外键获取数据。 我的数据库表是:

  category->id, name
  search->id, category_id (foreign_key), question, answer, tags

我的型号代码是: 类别模型

public function helpcenter() {
  return $this->belongsTo('App\HelpCenter');
}

帮助中心模型

public function category() {
  return $this->hasOne('App\HelpCenterCategory', 'id', 'category_id');
}

我的搜索查询控制器功能是

$queries = HelpCenter::has('category')
  ->where('questions', 'LIKE', '%'.$term.'%')
  ->orwhere('category_id.name','LIKE','%'.$term.'%')
  ->take(5)->get();

1 个答案:

答案 0 :(得分:1)

您需要使用whereHas()子查询关系:

$queries = HelpCenter::whereHas('category', function($category) use ($term)
    {
        $category->where('name','LIKE','%'.$term.'%');
    })
  ->orWhere('questions', 'LIKE', '%'.$term.'%')
  ->take(5)->get();

whereHas()在此处记录:http://laravel.com/docs/5.1/eloquent-relationships#querying-relations