2017-11-07 1 views
0

Ich habe vier Tabellen: asset_category Tabelle (Spalten 'asset_category_id', 'category'), eine assets Tabelle (Spalten 'asset_id', 'asset_category_id', 'manufacturer_id', 'department_id'), manufacturers Tisch (Spalten manufacturers_id, manufacturer) und departments Tabelle (Spalten department_id, department). Die Tabellenspalten asset sind mit den anderen drei Tabellen verknüpft. Ich bin eine dynamische Drop-down in Form der Durchführung in die asset Tabelle einzufügenLaravel Error, Darstellende Mehrere dynamische Dropdown

Asset.blade.php

<form action="{{url('/insertAsset')}}" method="POST" edata-parsley-validate novalidate> 
    {{ csrf_field() }} 
    <div class="form-group"> 
     <label for="userName">Asset ID*</label> 
     <input type="text" name="asset_id" parsley-trigger="change" required placeholder="Asset ID" class="form-control" id="userName" disabled> 
    </div> 
    <div class="form-group"> 
     <label for="userName">Asset Category ID*</label> 
     <select name="asset_category_id" parsley-trigger="change" required placeholder="Asset Category ID" class="form-control"> 
     <option>Select an Asset Category</option> 
     @foreach($asset_categories as $asset_category) 
      <option value=" {{$asset_category->asset_category_id}}"> {{ $asset_category->category }} </option> 
       @endforeach 
     </select> 
    </div> 
    <div class="form-group"> 
     <label for="userName">Asset Manufacture ID*</label> 
     <select name="manufacturer_id" parsley-trigger="change" required class="form-control"> 
      <option>Select a Manufacturer</option> 
       @foreach($manufacturers as $manufacturer) 
        <option value=" {{$manufacturer->manufacturer_id}}"> {{ $manufacturer->manufacturer }} </option> 
       @endforeach 
      </select> 
    </div> 
    <div class="form-group"> 
     <label for="userName">Department ID*</label> 
     <select name="department_id" parsley-trigger="change" required placeholder="Department ID" class="form-control" > 
      <option>Select a Department</option> 
      @foreach($departments as $department) 
       <option value=" {{$department->department_id}}"> {{ $department->department }} </option> 
      @endforeach 
     </select> 
    </div> 

<div class="form-group text-right m-b-0"> 
<button class="btn btn-primary waves-effect waves-light" type="submit"> 
    Submit 
</button> 
</div> 

AssetController

<?php 

namespace App\Http\Controllers; 

use App\Asset; 
use App\Asset_category; 
use App\Manufacturer; 
use App\Department; 

use Illuminate\Http\Request; 

class AssetController extends Controller 
{ 
    public function asset_category(){ 
     $asset_categories = Asset_category::all(); 
    return view('asset', ['asset_categories' => $asset_categories]); 
    } 

    public function manufacturer(){ 
     $manufacturers = Manufacturer::all(); 
     return view('asset', ['manufacturers' => $manufacturers]); 
    } 

    public function department(){ 
     $departments = Department::all(); 
     return view('asset', ['departments' => $departments]); 
    }  

} 

Web.php

<?php  

Route::get('/asset', function(){ 
    return view('asset'); 
}); 

Route::get('/asset', '[email protected]_category'); 
Route::get('/asset', '[email protected]'); 
Route::get('/asset', '[email protected]');  


/*POST */  
Route::post('/insertAsset', '[email protected]'); 

Wenn die Anwendung ausführen, bekomme ich eine ErrorException in dem es heißt:

Undefined variable: asset_categories (View: C:\xampp\htdocs\laravel_app\resources\views\asset.blade.php). 

Nach gründlicher Prüfung finde ich heraus, dass nur eine Drop-Down-Displays, da die Laravel Routen nur eine Variable von einer Funktion unter den 3 Funktionen in Die web.php und die anderen beiden Variablen aus den anderen Funktionen werden nicht an die asset.blade.php gesendet. So, jetzt möchte ich einen Weg, um die anderen Variablen an die Asset.blade.php zu routen. Bitte helfen Sie, wenn Sie es verstehen. Danke im Voraus.

Antwort

0
  • Die erste Sache ist, dass Laravel nur die erste Route mit der spezifischen ID und dem spezifischen Typ übereinstimmt. In diesem Fall wird nur die erste Route GET /asset gefunden.
  • Um zu tun, was ich erstaunt Sie wollen. Sie benötigen nur ein Verfahren zu schaffen, dass die drei Variablen der Ansicht

    public function asset(){ 
        $asset_categories = Asset_category::all(); 
        $manufacturers = Manufacturer::all(); 
        $departments = Department::all(); 
        return view('asset', ['asset_categories' => $asset_categories, 
            'manufacturers' => $manufacturers, 'departments' => $departments]); 
    } 
    

    Und nur eine Route Route::get('/asset', '[email protected]');

+0

Es funktionierte zurückkehren wird. Vielen Dank – Nii