Laravel: выпадающий из базы данных - PullRequest
0 голосов
/ 01 мая 2020

Я использую laravel с генератором infyomlab. Я хочу добавить данные как выпадающий из другой таблицы. Вот мой код

ProductController. php

$supplier = Supplier::all();
$unit = Unit::all();
$category = Category::all();

$products = $this->productRepository->all();
$product = DB::table('products')->select(
    'suppliers.*',
    'units.*',
    'categories.*')
    ->join('suppliers','suppliers.id', '=', 'products.supplier_id')
    ->join('units','units.id', '=', 'products.unit_id')
    ->join('categories','categories.id', '=', 'products.category_id')
    ->get();

return view('products.index', compact('supplier', 'unit', 'category', 'product'))
    ->with('products', $products);

fields.blade. php

<select class="form-control" name="supplier_id" id="supplier_id">
<option value="">Select Supplier</option>
@foreach($suppliers as $supplier)
    <option value="{{ $supplier->id }}">{{ $supplier->$supplier_name }}</option>
@endforeach

но когда я нажимаю добавить новый продукт он не показывает форму для ввода он показывает следующую ошибку

Undefined variable: suppliers (View: C:\xampp\htdocs\qa\resources\views\products\fields.blade.php)

Ответы [ 3 ]

1 голос
/ 01 мая 2020

Это просто опечатка:

Здесь вы возвращаете supplier не поставщиков compact('supplier', 'unit', 'category', 'product')

Так что вам нужно выполнить в переднем конце, как:

@foreach($supplier as $s)
   <option value="{{ $s->id }}">{{ $s->$supplier_name }}</option>
@endforech
0 голосов
/ 01 мая 2020

Вы заменяете его на

$supplier = Supplier::all();

на

$suppliers = Supplier::all();


return view('products.index', compact('suppliers', 'unit', 'category', 'product','products'));
0 голосов
/ 01 мая 2020

Попробуйте это

@foreach($products as $supplier)
    <option value="{{ $supplier->id }}">{{ $supplier->$supplier_name }}</option>
@endforeach

Как вы вернетесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...