2016-07-22 87 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

尝试移动'使用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