Laravel Eloquent löschen() funktioniert nicht
Dokumentation sagt:
$user = User::find($user_id);
$user->delete();
Diese nicht funktioniert, jedoch ProductColor::find($color_id) arbeiten. $Farbe->delete() Tust etwas zurückzugeben, LÖSCHEN VON query gar nicht ausführen (wie man im debug-bar).
Aber ich kann Datensatz löschen mit:
ProductColor::destroy($color_id);
Muss etwas sein, was ich früher übersehen, ich bin neu in Laravel.
Ich bin mit store auch, und es funktioniert wie erwartet
public function store(Request $request)
{
$color = new ProductColor();
$color->name = $request->color_name;
$color->order = $request->color_order;
$saved = $color->save();
if ($saved) {
return back()->with('message:success', 'Ok');
} else {
return back()->with('message:error', 'Error');
}
}
Zusammenfassend
Dies FUNKTIONIERT
public function destroy($color_id)
{
$deleted = ProductColor::destroy($color_id);
if ($deleted) {
return back()->with('message:success', 'Deleted');
} else {
return back()->with('message:error', 'Error');
}
}
Diese NICHT
public function destroy($color_id)
{
$color = ProductColor::find($color_id);
$color->delete();
}
Mein Modell
<?php
namespace Modules\Shop\Entities;
use Illuminate\Database\Eloquent\Model;
use Modules\Languages\Entities\Language;
class ProductColor extends Model
{
protected $fillable = [];
protected $table = 'product_colors';
}
- Wirklich, ich weiß nicht, warum das nicht funktioniert. Aber warum versuchst du es nicht mit Abfrage ??
$user = User::where('user_id', $user_id)->delete();
- Meine IDE zeigt, dass 'wo' ist nicht eine statische Methode, so dass ich nur User::destroy($user_id);
- Was ist die Fehlermeldung, wenn Sie versuchen, verwenden Sie
delete()
? - Wie gesagt, kein Fehler, nichts, es ist einfach nicht excecuting.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sorry, ich habe herauszufinden, wo das problem ist. Mein Fehler, post-Frage.
Was ich versucht habe:
Werden sollte:
War mein problem, welches ich erschrocken IDE beschweren sich über die Verwendung von nicht-statische Methode 'find'
Dein code ist in Ordnung - die docs genau das zeigen, was Sie tun.
Wenn kein Fehler vorhanden ist, und die Farbe ist nicht wie erwartet gelöscht, dann
$color_id
wird nicht weitergeleitet wie erwartet. Versuchen Sie es mitfindOrFail
, oder fügen Sie einige andere überprüfen, dass der erwartete Modell.Müssen Sie SoftDeletes im Benutzer-Modell:
...
class User extends Authenticatable
{
...