Ich habe ein Kontrollkästchen in meiner Produktform, standardmäßig ist das Kontrollkästchen nicht aktiviert und wird auf 0 gesetzt, wenn das Kontrollkästchen aktiviert ist überprüft, wird es eine 1 in die Datenbank einfügen, um es wissen zu lassen, dass das Produkt in der Titelseite gekennzeichnet wird.Abrufen von Kontrollkästchen, um zu überprüfen, ob es markiert ist oder nicht Laravel 5.2
Das Problem, das ich habe, ist, wenn ich das Produkt bearbeiten, wird das Kontrollkästchen nicht überprüft, obwohl es eine 1 in der Datenbank gibt. Ich habe viele Lösungen ausprobiert, kann aber keine richtige finden, die funktionieren wird.
Hier ist meine Funktion:
public function addPostProduct(ProductRequest $request) {
// Check if checkbox is checked or not for featured product
$featured = Input::has('featured') ? true : false;
// Create the product in DB
$product = Product::create([
'product_name' => $request->input('product_name'),
'price' => $request->input('price'),
'cat_id' => $request->input('cat_id'),
'featured' => $featured
]);
// Save the product into the Database.
$product->save();
// Flash a success message
flash()->success('Success', 'Product created successfully!');
// Redirect back to Show all products page.
return redirect()->route('admin.product.show');
}
Hier ist meine Erstellformular (einfach das Kästchen angezeigt):
<div class="form-group">
<label>Fetaured Product</label><br>
<input type="checkbox" name="featured" value="1">
</div>
hier meine bearbeiten Form ist (nur das zeigt, Kontrollkästchen):
<div class="form-group">
<label>Fetaured Product</label><br>
<input type="checkbox" name="featured" value="1">
</div>
Und meine Tabellenstruktur:
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->string('product_name');
$table->decimal('price', 10, 2);
$table->integer('cat_id');
$table->integer('featured')->default(0);
$table->timestamps();
});
Ankreuzfelder nicht auf magische Weise selbst überprüfen, nur weil eines Wertes in Ihrem Datenbank. Sie müssen das Attribut 'checked' ausgeben, wenn Sie es standardmäßig aktivieren möchten. – CBroe
so etwas wie folgt: ** featured === 1? "checked = checked": ""}}> ** – David
Ja, das ist eine ziemlich gewöhnliche Art, dies zu tun. (Obwohl ein einfaches "checked" genügt, zumindest in HTML5, da dies ein [boolesches Attribut] ist (https://www.w3.org/TR/html5/infrastructure.html#boolean-attribute).) – CBroe