Я создаю и инвентаризирую систему для основных c деталей, которая обеспечивает покрытие для нескольких компаний. Таким образом, моя таблица inventory
содержит информацию о деталях, такую как part_number и description, а также внешние ключи location_id
в таблицу locations
. У меня есть несколько складских предметов с одним и тем же номером детали, но в каждом месте у меня разные уровни запасов. Я хочу сгруппировать инвентарь по местоположению, а затем перечислить весь инвентарь в этом месте, прежде чем перебирать другие места и делать то же самое.
Вот что у меня в контроллере:
$inventory = Inventory::where('part_number', '12345')->get();
// dd($inventory);
$inventory_grouped_by_location = $inventory->groupBy('location_id');
// dd($inventory_grouped_by_location);
return view('inventory.show', compact('inventory_grouped_by_location');
Вот то, что у меня есть в моей модели инвентаризации:
public function location()
{
return $this->belongsTo(Location::class);
}
Вот то, что у меня есть в моей модели местоположения:
public function parts_inventory()
{
return $this->hasMany(Inventory::class);
}
Вот то, что я пробовал в мой взгляд:
@foreach($inventory_grouped_by_location as $location)
<p>Location: {{ $location->name }}</p>
@foreach($location as $inventory)
<p>Part Number: {{ $inventory->part_number }}</p>
@endforeach
@endforeach
Вышеприведенный код выдает ошибку, потому что я пытаюсь получить доступ к расположению, но у меня только location->id
из таблицы инвентаря. Я пытался получить доступ к таким отношениям $location[$key]->name
, но без радости.