Laravel에서 처음으로 작업하고 있습니다. 나는 길이, 넓이, 높이 등과 같은 Product (골판지 상자)의 기본 세부 사항을 포함하는 Products 테이블을 가지고있다. 제품의 다른 세부 사항은 함수 내 기본 세부 사항을 사용하여 계산된다.Laravel 5.2에서 Collection-> put()이 작동하지 않습니다.
컨트롤러에 내 코드는 다음과 같습니다
컨트롤러 :
$products = DB::table('master_products')
->join('part_types', 'master_products.part_type_id', '=', 'part_types.id')
->join('box_types', 'master_products.box_type_id', '=', 'box_types.id')
->select('master_products.*', 'part_types.part_type', 'box_types.box_type')
->get();
/* Calculate Specs and add them to the collection */
foreach ($products as $product) {
$rollSize = $this->calcRollSize($product->height, $product->breadth, $product->ply, $product->part_type_id, $product->box_type_id);
$products->put('roll_size', $rollSize);
}
return view('/layouts/masters/products-master', ['products' => $products]);
보기 :
<table class="table table-bordered table-condensed table-hover">
<thead>
<tr>
<th>Sl.No.</th>
<th>Product Code</th>
<th>Part Type</th>
<th>Box Type</th>
<th>Length</th>
<th>Breadth</th>
<th>Height</th>
<th>Ply</th>
<th>Roll Size</th>
<th>A-Base</th>
<th>A-Flute</th>
<th>B-Base</th>
<th>B-Flute</th>
<th>Top</th>
</tr>
</thead>
<tbody>
@foreach($prod_specs as $prod_spec)
<tr>
<td><?php echo $i; ?></td>
<td><?php echo $prod_spec->product_code; ?></td>
<td><?php echo $prod_spec->part_type; ?></td>
<td><?php echo $prod_spec->box_type; ?></td>
<td><?php echo $prod_spec->length; ?></td>
<td><?php echo $prod_spec->breadth; ?></td>
<td><?php echo $prod_spec->height; ?></td>
<td><?php echo $prod_spec->ply; ?></td>
<td><?php echo $prod_spec->roll_size; ?></td>
<td><?php echo $prod_spec->gsm_a_base; ?></td>
<td><?php echo $prod_spec->gsm_a_flute; ?></td>
<td><?php echo $prod_spec->gsm_b_base; ?></td>
<td><?php echo $prod_spec->gsm_b_flute; ?></td>
<td><?php echo $prod_spec->gsm_top; ?></td>
</tr>
<?php $i++; ?>
@endforeach
</tbody>
</table>
내가 가진이 예외 : 전화 멤버 함수에 비 객체에 put()을 사용합니다.
하지만 this stackoverflow question 님의 답변에 따르면 작동 할 것으로 예상됩니다. 내가 여기서 무엇을 놓치고 있니?
업데이트 :
:이
foreach ($products as $product) {
$rollSize = $this->calcRollSize($product->height, $product->breadth, $product->ply, $product->part_type_id, $product->box_type_id);
$product['roll_size'] = $rollSize;
}
시도는 오류
오케이. 내 잘못이야. 그래서이 경우'roll_size'를'$ products' 배열에 어떻게 추가 할 수 있습니까 ?? –
다른 배열에 뭔가를 추가하는 것과 같습니다 : $ products [ 'roll_size'] = $ rollSize' –
'dd ($ product)'를 루프 안에 넣고 질문을 출력으로 업데이트하십시오. 또한이 루프가 실행 된 후에는 'roll_size'의 _one_ 인덱스 만 존재합니다. 롤 크기의 배열이 필요한 경우 디자인을 재고해야 할 수도 있습니다. –