2017-08-13 83 views
1

文件說:Laravel雄辯刪除()不工作

$user = User::find($user_id); 

$user->delete(); 

這不工作,但是ProductColor ::發現($ COLOR_ID)工作。 $ color-> delete()Doest返回任何東西,DELETE FROM查詢甚至不會執行(如調試欄所示)。

但我可以刪除記錄:

ProductColor::destroy($color_id); 

一定有什麼東西我剛纔忽略了,我是新來的Laravel。

我使用的儲存也和它的工作如預期

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'); 
     } 

    } 

綜上所述

這個作品

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'); 
     } 
    } 

這難道不是

public function destroy($color_id) 
{ 
    $color = ProductColor::find($color_id); 

    $color->delete(); 
} 

我的模型

<?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'; 
} 
+0

真的我不不知道爲什麼這不起作用。但是,你爲什麼不試試查詢? '$ user = User :: where('user_id',$ user_id) - > delete();' –

+0

我的IDE顯示'where'不是靜態方法,所以我只使用User :: destroy($ user_id); – RomkaLTU

+0

當您嘗試使用delete()時,錯誤是什麼? – lesssugar

回答

0

對不起,我已經弄清楚問題出在哪裏。我的錯誤發佈問題。

我試圖這樣做:

$color = new ProductColor(); 
$color->find($color_id); 
$color->delete(); 

應該是:

$color = ProductColor::find($color_id); 
$color->delete(); 

我的問題是taht我嚇得IDE抱怨使用非靜態方法 '發現'

0

你的代碼很好 - the docs show exactly你在做什麼。

如果沒有錯誤,並且顏色未按預期刪除,則$color_id未按預期傳遞。嘗試使用findOrFail,或添加一些其他檢查,找到預期的模型。