2015-11-16 2 views
1

Я использую laravel 5.1 для своего нового интеллектуального поиска проекта. Моя проблема - получить данные из внешнего ключа, используя такой же запрос для поиска этой таблицы. Мои таблицы базы данных:Как получить данные из внешнего ключа в 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

Вы хотите использовать 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

+0

Благодарим Вас за ответ Trip. –