2017-09-22 6 views
0

foreach 루프를 내 데이터 테이블에 넣으려고하지만 작동하지 않습니다. P. 나는 foreach는 모든 것을 잘 이미 여기에 부착 , 당신은 foreach A가 stringForeach in Yajra DataTable Laravel

당신이 할 수 것은 수행 foreach입니다에 부착하고 작동하지 않습니다 내 코드

$Product = Product::query(); 
$colors = Color::all(); 

return Datatables::eloquent($Product) 

    ->addColumn('category_name', function($row) { 

     $category = Category::select('name')->where('id', $row->category_id)->pluck('name')->toArray(); 
     return $category; 

    }) 

    ->addColumn('add_color', function($row) { 

     $return = 
      '<form class="form-inline" method="post" action="/procurement/add-product" style="max-width: 170px;"> 
      <input type="hidden" name= "product_id" value="' . $row->id . '"> 

      <div class="form-group"> 
      <select name="color_id" class="form-control" required autofocus> 
        '.foreach ($colors as $color){.' 
        <option value="test">test</option>'.}.' 
      </select> 
      </div>'; 

     return $return; 

}); 

답변

0

당신은 수익 외부 foreach 문을 수행해야합니다. use 또는 $color 변수를 데이터 표 안에 가져올 필요가 없습니다. 이 같은 ..

$Product = Product::query(); 
$colors = Color::all(); 

return Datatables::eloquent($Product) 

->addColumn('category_name', function($row) { 

    $category = Category::select('name')->where('id', $row->category_id)->pluck('name')->toArray(); 
    return $category; 

}) 

->addColumn('add_color', function($row) use ($colors) { 
     $options = ''; 
     foreach ($colors as $color) { 
      $options .= '<option value="test">$color</option>'; 
     } 

    $return = 
     '<form class="form-inline" method="post" action="/procurement/add-product" style="max-width: 170px;"> 
     <input type="hidden" name= "product_id" value="' . $row->id . '"> 

     <div class="form-group"> 
     <select name="color_id" class="form-control" required autofocus> 
     </select> 
     </div>'; 

    return $return; 

}); 
1

입니다 작동 제거하는 경우 먼저 해당 문자열에 첨부 할 항목을 준비하십시오.

예를 들면,

<option>something</option> 
<option>something more</option> 

$return 할 설정하기 전에 foreach :

->addColumn('add_color', function($row) { 

    $options = '' 
    // here we prepare the options 
    foreach ($colors as $color) { 
     $options .= '<option value="test">$color</option>'; 
    } 

    $return = 
     '<form class="form-inline" method="post" action="/procurement/add product" style="max-width: 170px;"> 
     <input type="hidden" name= "product_id" value="'.$row->id.'"> 

     <div class="form-group"> 
      <select name="color_id" class="form-control" required autofocus>' . $options . '</select> 
     </div>'; 

    return $return; 

}) 
+0

이것은 감사합니다 남자 !!! 당신은 나를 많이 구할 –

+0

당신은 환영합니다 :) – Wreigh