2017-02-03 10 views
1

это мой стол: t_hasil_temp |---|-------|----------|-------| |id | id_wi | hasil | nilai | |---|-------|----------|-------| |1 | 3 | 45 | 0,53 | |2 | 3 | 20,45,23 | 0,53 | |3 | 4 | 21,22 | 0,87 | |4 | 5 | 45,23 | 0,23 | Laravel Еогеасп в суб Еогеасп клинка

t_objek |---|-------|----| |id | name | ...| |---|-------|----| |20 | name1 | ...| |21 | name2 | ...| |23 | name3 | ...| |45 | name4 | ...|

t_hasil_temp.hasil => t_objek.id

Я хочу сделать зацикливание t_objek из t_hasil_temp.hasil с тем же id_wi

например id_wi => 3

покажет в связи с лезвиями: nilai => 0,53

первый Еогеасп: name4

второй Еогеасп: name1 и name4 и name3

Я попробовать, как это. Но я получаю только первый id от t_hasil_temp.hasil

мой контроллер

$temps = DB::table('t_hasil_temp') 
    ->where('id_wi', $idwisa) 
    ->get(); 

    foreach ($temps as $value) { 
    $stemp = DB::table('t_hasil_temp') 
    ->where('id', $value->id) 
    ->first(); 

    $temp = explode(",",$stemp->hasil); 

    $tempStr = implode(',', $temp); 

    $robjeks = DB::table('objek')->whereIn('id', $temp)->orderByRaw(DB::raw("field(id, $tempStr)"))->get(); 
    } 

мой взгляд

@foreach($temps as $tem) 
    <ul id="list"> 
     @foreach($robjeks as $robjek) 
     @if(in_array($robjek->id,explode(',', $tem->hasil))) 
      <li class="list_item {{$robjek->kategori}}"> 
      ..... 
      </li> 
     @endif 
     @endforeach 
    </ul> 
@endforeach 

Я думаю, что есть что-то случилось с моим кодом, но я не знаю. Я смирился. Помогите мне, пожалуйста!

Спасибо за внимание.

+0

Вы перезапись '$ Temp = взорваться ("", $ TEMP-> Hasil);' (здесь есть ошибка опечатки тоже). Но теперь '$ temp' имеет массив, взорванный запятой. Не запись db, которую вы пытаетесь получить в шаблоне '$ tem-> id'. Поэтому измените имя переменной. –

+0

Извините, я не знаю, какой из них мне следует изменить? –

+0

Вы можете использовать dd ($ tem) в своей первой строке шаблона лезвия –

ответ

0

Вы перезаписываете значения переменных $robjeks, которые вы принимаете за каждый результат в массиве.

Вы можете попробовать как

$temps = DB::table('t_hasil_temp') 
    ->where('id_wi', $idwisa) 
    ->get(); 

    foreach ($temps as $value) { 
    $stemp = DB::table('t_hasil_temp') 
    ->where('id', $value->id) 
    ->first(); 

    $temp = explode(",",$stemp->hasil); 

    $tempStr = implode(',', $temp); 

    $robjeks[] = DB::table('objek')->whereIn('id', $temp)->orderByRaw(DB::raw("field(id, $tempStr)"))->get(); 
    } 

Вы хотели посмотреть

@foreach($temps as $tem) 
    <ul id="list"> 
     @foreach($robjeks as $robjek) 
     @if($tem->id == $robjek->id) 
      <li class="list_item {{$robjek->kategori}}"> 
      ..... 
      </li> 
     @endif 
     @endforeach 
    </ul> 
@endforeach