2016-07-22 6 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(); 
    }); 

, но вместо добавления времени в этот столбец, когда я запускаю сайт, он удаляет строку с выбранным идентификатором. Где я ошибаюсь?

+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

Смежные вопросы