2016-11-04 1 views
2

Я пытаюсь получить эту цепочку меток и прокрутить ее, чтобы получить столбцы соответствующих тегов в другой таблице:Как правильно выполнить этот запрос на взрыв и сравнение? Laravel 5.3

1A-3,1-1,1-2,3-4,4- 6,4-8,6-13,6-15,8-6,8-11,7A-4,7A-5,7A-6

Проверки против: enter image description here

$ministry = AgencyLogin::find(196); 
      $prefs = $ministry->Ministry_Preferences; 
      $tags = explode(',', $prefs); 
      foreach ($tags as $tag) { 
       $sub_categories[] = DB::table('descriptor') 
       ->where('tag', $tag) 
       ->select('subcategory', 'description') 
       ->first(); 
      } 
//dd($sub_categories); 
return view('agencydash', compact('sub_categories')); 

dd($prefs) печатает правильную строку. $sub_categories[] никогда не преобразуется в реальный массив, поэтому не может быть проанализирован как один, и мой ограниченный опыт работы в Laravel означает, что я не знаю, как превратить такой запрос в массив, а не в текущую вещь, это объект.

dd($sub_categories) после того, как относиться к нему как объект выводит один результат, который кажется случайным:

{#262 ▼ 
    +"subcategory": "SUPPORT ROLE" 
    +"description": "Project Management" 
} 

Я преподаю себя Laravel и PHP устойчива, поэтому такие проблемы, как эти открытых больше вопросов, то я могу ответ еще. Кто-нибудь знает, что мне не хватает?

ответ

1

Почему вы выполняете итерацию через теги $ и не используете метод whereIn и получаете целую коллекцию соответствующих строк?

$ministry = AgencyLogin::find(196); 
     $prefs = $ministry->Ministry_Preferences; 
     $tags = explode(',', $prefs); 
     $sub_categories = DB::table('descriptor') 
      ->whereIn('tag', $tags) 
      ->get(['subcategory', 'description']); 
//dd($sub_categories); 
return view('agencydash', compact('sub_categories')); 

Docs

+0

Coz Я слишком noobish, чтобы знать, что было вещью. :, D:, D спасибо. Это решает. – Mugluck

+1

@ Mugluck рад, что я мог помочь :) P.S. Не забудьте удалить $ sub_categories = [] или что-то еще, вам нужно было где-то определить. –

Смежные вопросы