2016-06-07 8 views
1

Ich habe dieses Formular in der Laravel Admin-Backend, die neue Produkte zur Datenbank hinzugefügt.So zeigen Sie Kategorien in Produkt erstellen Seite in Laravel

productCreate.blade.php

{{ Form::open(['files' => true]) }} 
<div class="form-group"> 
    <label for="title" class="control-block">Product title:</label> 
    {{ Form::text('title', null, ['class' => 'form-control']) }} 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Product description:</label> 
    {{ Form::textarea('description', null, ['class' => 'form-control']) }} 
    <span class="help-block">HTML is allowed.</span> 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Product price:</label> 
    {{ Form::text('price', null, ['class' => 'form-control']) }} 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Assign Product to Category:</label> 
    <select class="form-control"> 
     <option value="one">Category 1</option> 
     <option value="two">Category 2</option> 
     <option value="three">Category 3</option> 
     <option value="four">Category 4</option> 
     <option value="five">Category 5</option> 
    </select> 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Product image:</label> 
    {{ Form::file('image', ['class' => 'form-control']) }} 
</div> 

<hr /> 

<button type="submit" class="btn btn-primary">Create new product</button> 

{{ Form::close() }} 

Meine Frage ist, wie diese select/Optionen Werte aus der Datenbank zu zeigen. Ich möchte Produkte Kategorien zuordnen können. Wo soll ich eine Abfrage machen und wie man sie hier in der Ansicht anbringt?

In Admincontroller ich habe Funktionen für Produkterstellung, die die Ansicht laden

public function productsCreate() { 
    return View::make('site.admin.products_create'); 
} 

und ich versuchte, es wie dieses

public function productsCreate() { 
    $categories = Categories::paginate(15); 
     return View::make('site.admin.products_create', [ 
      'categories' => $categories 
     ]); 
    //return View::make('site.admin.products_create'); 
} 

zu machen, aber dann bekam ich Nachricht

production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Cannot redeclare AdminController::productsCreate() ... 

Wie genau kann ich Datenbanktabellenkategorien abfragen und Kategorien im Formular anzeigen?

Kann sein, weil ich bereits Kategorien Auswahl im Admin-Controller habe?

public function categories() { 
    $categories = Categories::all(); 
    return View::make('site.admin.categories', [ 
     'categories' => $categories 
    ]); 
} 

public function productsCreate() { 
//  $categories = Categories::paginate(15); 

     return View::make('site.admin.products_create', [ 
      'categories' => $categories 
     ]); 
    //return View::make('site.admin.products_create'); 
} 
+0

meinst du, Kategorien zu Produkten zuweisen? –

+0

Ich meine, ich möchte Kategorien zu diesem Formular zeigen. Dieses Formular dient zum Hinzufügen von Produkten. Wie können Kategorien in dieser Form angezeigt werden? –

+0

Sehen Sie sich meine Antwort unten an, aber paginieren Sie die Kategorien? Ich empfehle Ihnen, alle Kategorien zu zeigen –

Antwort

2

Sie passieren die Kategorien in der productsCreate Funktion, und Sie müssen die alte productsCreate Funktion entfernen, erklärt man es zweimal:

public function productsCreate() { 
    $categories = Categories::get(); 
    return View::make('site.admin.products_create', [ 
     'categories' => $categories 
    ]); 
} 

Für den HTML-Code:

<div class="form-group"> 
<label for="title" class="control-block">Assign Product to Category:</label> 
<select class="form-control"> 
    @foreach($categories as $categorie) 
    <option value="{{ $categorie->id }}">{{ $categorie->name }}</option> 
    @endforeach 
</select> 

Ich hoffe, dass dir das weiterhilft.

+0

Danke für die Hilfe. Alles funktioniert super! –

+0

Sind Sie sicher, dass Ihre Tabelle ** categories ** nicht leer ist? –

+0

Es ist nicht mein Fehler, weil hier '{{$ categorie-> id}}"> {{$ categorie-> name}} '' {{$ categorie-> category_id}} "> {{$ categorie- > Kategoriename}} '. –

Verwandte Themen