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

Привет, ребята, у меня есть стол производители (колонны ‘Manufacturer_id’, «Производитель») и хотите динамически отображать список «select» на основе этой таблицы в другом, но связанном представлении ‘Asset.blade.php’.

Модель — Asset.php

namespace App;

class Asset extends Model
{
protected $primaryKey = 'asset_id';

}

Контроллер — AssetController

namespace App\Http\Controllers;

use App\Asset;
use App\Manufacturer;

use Illuminate\Http\Request;

class AssetController extends Controller
{
public function asset(){

$assets = Asset::all();
return view('viewAsset', ['assets' => $assets]);
}

public function getmanufacturerlist() {
$Manufacturer = Manafacturers::all();
return view('manufacturer')->with('data', $Manufacturer);
}

public function add(Request $request){
$this->validate($request, [
'asset_id' => '',
'asset_category_id' => 'required',
'manufacturer_id' => 'required',
'department_id' => 'required',
]);
$assets =  new Asset;
$assets  ->asset_id  = $request->input('asset_id');
$assets  ->asset_category_id = $request->input('asset_category_id');
$assets  ->manufacturer_id = $request->input('manufacturer_id');
$assets  ->department_id = $request->input('department_id');
$assets  ->save();
return redirect('/viewAsset') ->with('info', 'New Asset Saved Successfully!');
}
}

manufacturer.blade.php

<select name="manufacturer_id">
<option>Select a Manufacturer</option>
@foreach( $manufacturer as $manufacturers )
<option value=" <?php echo $manufacturers->manufacturer_id; ?>" > <?php echo $manufacturer->manufacturer?> </option>
@endforeach
</select>

когда я выполняю свой проект — он работает просто отлично, я вижу выпадающий список. Но если я включу мой manufacturer.blade.php в виде:

 @include('forms.manufacturer')

Я получаю ошибку

Undefined variable: manufacturer.

Как я могу исправить ошибку? Моя версия Laravel — 5.4.

0

Решение

Вы проходите $manufacturer как $data на ваш взгляд.

Обновите его, чтобы правильно передать переменную с именем $manufacturer,

return view('manufacturer')->with('manufacturer', $Manufacturer);

Или используйте компактный для более чистого подхода:

return view('manufacturer', compact('manufacturer'));
0

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

Других решений пока нет …

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