Laravel вложенная петля

Я получаю сообщение об ошибке при попытке сделать вложенный цикл в блейде @foreach

Это то, что я пробовал, да, я использую 2 key на это .. есть ли способ связать это?

вот мой код контроллера

$product = Product::where($where)->get();
foreach($product as $key=>$value){
if($value->SupplierID){
$product[$key]['SupplierName'] = Company::find($value->SupplierID)->CompanyName;
}else{
$product[$key]['SupplierName'] = '-';
}

$product[$key]['ProductName'] = $value->getProdNameOne()->ProductName;

}

if(!empty(Auth::user())){
$userid = Auth::user()->id;

$companyfromusers = Companypersonstruct::where('user_id','=',$userid)->first();

if(!empty($companyfromusers->user_id)){
$companyrelationstruct = CompanyRelationStruct::where('FromCompanyID','=',$companyfromusers->CompanyID)->get();

if(!empty($companyrelationstruct)){
foreach($companyrelationstruct as $key=>$crs){
$relatedcompany[] = Company::where('id','=',$crs->ToCompanyID)->get();
}
} else {
$relatedcompany = '-';
}
} else {
$relatedcompany = '-';
}
}

и это мой вид кода

@foreach ($product as $key=>$products)
<tr>
<th scope="row">{{ $products->ProductNumber }}</th>
<td><a href="/detailproduct/{{ $products->id }}" target="_blank"> {{ $products->ProductName }}</a></td>
@if(\Auth::user())
@foreach($relatedcompany[$key] as $keychild=>$valchild)
<td>{{ $valchild->CompanyName }}</td>
@endforeach
<td>{{ $products->UnitCustPrice }}</td>
@endif
</tr>
@endforeach

Это ошибка, которую я получаю:

Неопределенное смещение: 2

0

Решение

Я считаю, что есть несколько проблем, которые можно решить.

$product = Product::where($where)->get();
foreach ($product as $key => $value) {
if ($value->SupplierID) {
$product[$key]['SupplierName'] = Company::find($value->SupplierID)->CompanyName;
} else {
$product[$key]['SupplierName'] = '-';
}
$product[$key]['ProductName'] = $value->getProdNameOne()->ProductName;
}

$relatedcompany = false;
if (!empty(Auth::user())) {
$userid = Auth::user()->id;

$companyfromusers = Companypersonstruct::where('user_id', '=', $userid)->first();
$relatedcompany = array();

if (!empty($companyfromusers->user_id)) {
$companyrelationstruct = CompanyRelationStruct::where('FromCompanyID', '=', $companyfromusers->CompanyID)->get();
if (!empty($companyrelationstruct)) {
foreach ($companyrelationstruct as $crs) {
$relatedcompany[] = Company::find($crs->ToCompanyID);
}
}
}
}

Предположим, вы правильно передали переменные, это код представления, который может работать с $product а также $relatedcompany выше.

@foreach ($product as $key=>$products)
<tr>
<th scope="row">{{ $products->ProductNumber }}</th>
<td><a href="/detailproduct/{{ $products->id }}" target="_blank"> {{ $products->ProductName }}</a></td>
@if ($relatedcompany !== false)
@forelse ($relatedcompany as $company)
@if ($company)
<td>{{ $company->CompanyName }}</td>
@endif
@empty
<td>-</td>
@endforelse
<td>{{ $products->UnitCustPrice }}</td>
@endif
</tr>
@endforeach
1

Другие решения

Вы должны попробовать это:

@foreach ($product as $key=>$products)
<tr>
<th scope="row">{{ $products->ProductNumber }}</th>
<td><a href="/detailproduct/{{ $products->id }}" target="_blank"> {{ $products->ProductName }}</a></td>
@if(\Auth::user())
@if(isset($relatedcompany[$key]))
@foreach($relatedcompany[$key] as $keychild=>$valchild)
<td>{{ $valchild->CompanyName }}</td>
@endforeach
@endif
<td>{{ $products->UnitCustPrice }}</td>
@endif
</tr>
@endforeach
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector