2014-11-18 8 views
0

У меня есть таблица, одна из которых - это таблица пользователей, в которой я хочу получить идентификатор из этой таблицы, путем поиска имени пользователя, а второй - таблицы призовой области, которую я хочу получить от user_id, путем поиска выигрыша, после все, что я хочу, получить только prima_info.user_id и user.id.что это лучший способ для этой части поиска в 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(); 

пожалуйста, помогите мне! Лучшие связи

ответ

0

Я бы посоветовал вы использовали Laravel-х Eloquent ORM Relationships, чтобы сделать это. Вы можете легко получить связанную запись, используя доступные отношения;

  1. один-к-одному
  2. один-ко-многим
  3. BelongsTo
  4. BelongsToMany
  5. HasMany
  6. HasOne
  7. Полиморфные Таблицы (с использованием сводных таблиц)
+0

Можете ли вы объяснить больше? Я знаю о вышеуказанных отношениях, но я думал, что мы не можем использовать отношение для поиска между несколькими таблицами! если возможно, пожалуйста, объясните это больше! Большое спасибо – echoHamed

+0

, когда вы написали поисковый запрос, эта связь поможет вам получить связанные данные, которые вы хотите сохранить в нескольких таблицах – Richie

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(); 
Смежные вопросы