2016-07-22 8 views
1

はテーブルポストとモデルとのシンプルなアプリ持た動作しません削除ソフト:Laravel 5.2私は

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use SoftDeletes; 
class Post extends Model 
{ 
    protected $table = 'post'; 

    protected $dates = ['deleted_at']; 

    protected $softDelete = true; 

} 

私は削除ソフトの例をしようとしていると私は一例をroute.phpのためのルートを使用していました:

<?php 
use App\Post; 

use Illuminate\Database\Eloquent\SoftDeletes; 
Route::get('/delete', function(){ 
    $post = new Post(); 
    Post::find(12)->delete(); 

}); 

私が移行して作成した列 "のcreated_at" を持っている:

Schema::table('post', function (Blueprint $table) { 
     $table->softDeletes(); 
    }); 

、代わりの時間を加算しこの列には、サイトを実行すると、選択したIDの行が削除されます。どこが間違っていますか?

+0

クラス内で 'use SoftDeletes;'を移動してみてください。私はドキュメントが示唆していると思います –

答えて

5

あなたはそうのようなあなたのモデル内のSoftDeletes形質を使用する必要があります。

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use Illuminate\Database\Eloquent\SoftDeletes; 

class Post extends Model 
{ 
    use SoftDeletes; 

    protected $table = 'post'; 

    protected $dates = ['deleted_at']; 
} 

は今、あなたは、形質を適用していないので、明らかにそれが動作しません。

さらに、ルートファイルに不要なコードが含まれています。これは次のようになります:

<?php 
use App\Post; 

Route::get('/delete', function(){ 
    Post::find(12)->delete(); 
}); 
+0

これは正しいです。私は同じことをタイプしていました。 –

+0

ありがとうございます:)。 – gdfgdfg