2017-10-26 2 views
0

Hallo Leute, ich habe eine Tabelle Hersteller (Spalt ‚MANUFACTURER_ID‘, ‚Hersteller‘) und will eine „Auswahl“ Liste anzuzeigen basierend durch diese Tabelle dynamisch in einer anderen, aber verknüpften Ansicht 'asset.blade.php'.Laravel, Anzeigedaten auf einem Drop-Down aus einer anderen Tabelle

Modell - Asset.php

namespace App; 

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

} 

-Controller - 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> 

wenn ich mein Projekt ausführen - es funktioniert gut, sehe ich die Dropdown-Liste. Aber wenn ich meine manufacturer.blade.php in Form sind:

@include('forms.manufacturer') 

Ich erhalte die Fehler

Undefined variable: manufacturer. 

Wie kann ich den Fehler beheben? Meine Laravel Version ist 5.4.

+0

Von docs [Einschließlich Sub-Ansichten] (https://laravel.com/docs/5.5/blade#including-sub-views) ** Alle Variablen, die für die Elternansicht verfügbar sind, werden für die enthaltene Ansicht verfügbar gemacht **. Sie müssen '$ manufacturer' vom Controller übergeben, wenn Sie die Unteransicht' @include ('forms.manufacturer') ' – ljubadr

+0

danke laden. Es funktioniert @ljubadr – Nii

+0

Sie sind willkommen – ljubadr

Antwort

0

Sie übergeben $manufacturer als $data zu Ihrer Ansicht.

Aktualisieren Sie es, um eine Variable mit dem Namen $manufacturer ordnungsgemäß zu übergeben.

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

Oder nutzen Sie kompakt für eine sauberere Ansatz:

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

Ich habe versucht, es zu $ ​​Hersteller zu aktualisieren, und ich habe die kompakte Ansatz verwendet, aber der Fehler behält immer noch das gleiche. @ enriqg9 – Nii

+0

@Nii versuche 'return view (' manufacturer ') -> mit (' data ', $ Manufacturer); 'auf deinem Controller und aktualisiere diese Zeile auf deiner Ansicht' @foreach ($ data as $ manufacturers) 'und lass es Ich weiß, was passiert – enriqg9

+0

der Fehler msg wechselte zu: Undefinierte Variable: Daten @ enriqg9 – Nii

Verwandte Themen