Ich lerne Laravel 5.2 zum ersten Mal, und ich muss ein Formular erneut ausfüllen, wenn die Validierung fehlschlägt.Markieren Sie mehrere Auswahloptionen nach fehlgeschlagenen Validierungen - Laravel 5.2
Ich konnte dies mit einzelnen Eingaben als 'Name' oder 'Beschreibung' tun, aber ich konnte nicht herausfinden, wie man es mit der 'Kategorie' macht, die eine Mehrfachauswahl ist.
Ausblick:
<form action="{{ url('addproduct') }}" method="POST">
{!! csrf_field() !!}
<div class="form-group">
<label for="#productName">Name:</label>
<input id="productName" class="form-control" name="name" type="text" placeholder="Product name" value="{{ old('name') }}">
</div>
<div class="form-group">
<label for="#productDescription">Description:</label>
<textarea id="productDescription" class="form-control" name="description" rows="3" placeholder="Product description" value="{{ old('description') }}"></textarea>
</div>
@if ($categories)
<div class="form-group">
<label for="#productCategory">Category:</label>
<select id="productCategory" class="form-control" name="category[]" multiple>
@foreach ($categories as $category)
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
</select>
</div>
@endif
<div class="form-group">
<label for="#productQuantity">Quantity:</label>
<input id="productQuantity" class="form-control" name="quantity" type="number" min="0" value="0">
</div>
<button class="form-control btn btn-success" type="submit">Add Product</button>
</form>
Controller:
public function add(Request $request) {
$data = array();
$data['msgAdded'] = false;
$data['categories'] = Category::select('name', 'id')->get();
if ($request->isMethod('post')) {
$this->validate($request, [
'name' => 'required|max:50',
'description' => 'required|max:200',
'category' => 'required',
'quantity' => 'required|min:0',
]);
$product = new Product;
$product->name = $request->name;
$product->description = $request->description;
$product->quantity = $request->quantity;
$product->save();
foreach ($request->category as $cat) {
$category = Category::find($cat);
$category->products()->attach($product->id);
}
$data['msgAdded'] = true;
}
$data['view'] = 'addproduct';
return view('products/add', $data);
}
Ich mag würde wissen, ob es mit Klinge erreichen sein kann, oder der beste Weg, das zu erreichen.
Vielen Dank!
Perfect! Vielen Dank! Ich benutze die Option 1. Würden Sie mir empfehlen, Pakete wie die HTML zu verwenden, die Sie zuvor erwähnt haben? Gibt es Nachteile bei der Verwendung von Paketen? –
Es liegt an deiner Vorliebe. Ich persönlich denke, Option 2 ist sauberer und der einzige Nachteil ist, dass du die Dokumentation lesen musst, um zu verstehen, wie du sie verwendest, aber wenn du dich erst einmal daran gewöhnt hast, ist es schneller und leichter zu verstehen zurück zu deinem Code. – Fuxy