Laravel 5.2软删除不起作用

gdf*_*dfg 1 soft-delete laravel eloquent laravel-5

我有一个简单的应用程序与表格和模型:

<?php

namespace App;

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

   protected $dates = ['deleted_at'];

   protected $softDelete = true;

}
Run Code Online (Sandbox Code Playgroud)

我试图做软删除的例子,我正在使用路由,例如route.php:

<?php
use App\Post;

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

});
Run Code Online (Sandbox Code Playgroud)

我有一个使用迁移创建的列"created_at":

    Schema::table('post', function (Blueprint $table) {
        $table->softDeletes();
    });
Run Code Online (Sandbox Code Playgroud)

,但是当我运行网站时,它删除了具有所选ID的行,而不是向此列添加时间.我哪里错了?

Mar*_*łek 8

您需要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'];
}
Run Code Online (Sandbox Code Playgroud)

现在你,不是应用特质,所以很明显它不起作用.

此外,您在路径文件中有不必要的代码段.它应该如下所示:

<?php
use App\Post;

Route::get('/delete', function(){
    Post::find(12)->delete();
});
Run Code Online (Sandbox Code Playgroud)