2016-06-08 2 views
0

im довольно новый в использовании этого, так что я застрял там, где мне нужно было отображать результат определенного запроса в качестве раскрывающегося списка на мой взгляд. В мой контроллер, вот в запросеотображение результатов запроса к форме :: select in laravel 4.2

//categories 
    $cats = DB::table('nsa_subcategory AS sc') 
      ->join('nsa_maincategory AS mc' , 'sc.maincategoryid' , '=' , 'mc.maincategoryid') 
      ->select('sc.subcategoryid' , 'sc.subcategoryname' , 'mc.maincategoryname') 
      ->get(); 
    // dd($cats); 

мне нужно, чтобы отобразить subcategoryname и maincategoryname в выпадающем списке и получить значение subcategoryid им застрял здесь. любые идеи о том, как это реализовать? Огромное спасибо заранее!

+1

'foreach' цикл в представлении, что печатает' '

+0

Вы можете поделиться выходом? результат dd() –

ответ

1

Попробуйте

контроллер

$cats = DB::table('nsa_subcategory AS sc') 
      ->join('nsa_maincategory AS mc' , 'sc.maincategoryid' , '=' , 'mc.maincategoryid') 
      ->select('sc.subcategoryid' , 'sc.subcategoryname' , 'mc.maincategoryname')->lists('id', 'categorie name') 
      ; // change this with the right data , the first wil be the value the second will be displayed 

Посмотреть

foreach ($cats as $maincat => $subcat) { 
echo $subcat; 
} 

DROPDOWNLIST

{{ Form::select('size', $cats,'Choose category') }} 

, даже если работа с дозатором, важная часть - это функция ->lists(), добавив, что к запросу будут подготовлены данные, которые будут разнесены в выпадающем списке , если вы столкнулись с какой-либо ошибкой, отправьте комментарий, и я обновлю ответ если необходимо

1

указанный запрос предоставит вам объект Collection, но вместо этого вам понадобится массив. пары ключей => значения. Должно быть сделано следующее:

$cats = DB::table('nsa_subcategory AS sc') 
     ->join('nsa_maincategory AS mc' , 'sc.maincategoryid' , '=' , 'mc.maincategoryid') 
     ->lists(DB::raw('CONCAT(sc.subcategoryname," " , mc.maincategoryname) AS cat_name'),'cat_id'); 

Это даст вам желаемый результат. И если вы используете форму помощник Laravel, вы можете напрямую передать это следующим образом:

{{Form::select('name',$cats)}} 
+0

привет rahul im что-то сказать 'array_combine(): Оба параметра должны иметь равное количество элементов – BourneShady

+0

Возможно, функция выбора создает проблемы .. Я обновлю ответ соответственно. –

+0

i don ' я знаю, что происходит, но он дает мне какую-либо ошибку, потому что он использует запрос 'select' subcategoryname, '' as ',', 'nsa_subcategory'.'subcategoryid' из' nsa_subcategory' внутреннего соединения 'nsa_maincategory' на' nsa_subcategory'''. maincategoryid' = 'nsa_maincategory'.'maincategoryid'', который я не знаю, почему он использует такой запрос для любых идей? – BourneShady

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