2016-02-25 2 views
2

Я использую Laravel 5.2.Laravel 5.2 eloquent возвращает мягкие удаленные записи

У меня есть model, как показано ниже:

<?php 

namespace App\Models; 
use Illuminate\Database\Eloquent\SoftDeletes; 

class ZoomMeeting extends BaseModel { 

    public $timestamps=true;   

    protected $table = 'zoom_meetings'; 

    use SoftDeletes; 

    protected $dates = ['deleted_at']; 

    protected $fillable = ['user_id', 'uuid', 'meeting_id', 'host_id', 'topic', 'status', 'type', 'start_url', 'join_url', 'created_at']; 

    public function users() { 
     return $this->belongsTo('App\Models\User'); 
    } 
} 

И базовая модель, как показано ниже:

<?php namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 
use Auth; 
use Carbon\Carbon; 

class BaseModel extends Model { 

    public $timestamps = false; 

    protected static function boot() 
    { 
      //parent::boot(); 

      static::creating(function($model) { 
       if(empty($model->created_at)) 
       { 
        $model->created_at = date('Y-m-d H:i:s'); 
       } 
       return true; 
      }); 

      static::updating(function($model) { 
      $model->updated_at = date('Y-m-d H:i:s'); 
      return true; 
      }); 
    } 
} 

Я использую softdeletetrait в ZoomMeeting модели, и мягкое удаление работает нормально.

Однако, если я получаю записи из той же модели с использованием красноречия, он также возвращает мягкие удаленные записи. Я использую ниже код, чтобы получить записи:

$record = ZoomMeeting::where("user_id", $user_id)->where("meeting_id", $meeting_id)->orderBy("id", "DESC")->first(); 

The eloquent строит query как:

select * from `zoom_meetings` where `user_id` = 3 and `meeting_id` = 707070707 order by `id` desc limit 1 

Зеи нет deleted at is null набора в where заявления. Это не предотвращает удаленные записи.

Я не уверен, где я делаю ошибку?

+0

Любые эксперты, доступные здесь? – Dev

ответ

3

Похоже, что вы переопределяете метод boot, но вы никогда не на самом деле вызываете родительский метод boot (он закомментирован), поэтому черта никогда не будет инициализирована правильно. Я считаю, что также означает, что данные, которые вы удаляли, фактически удаляются из базы данных.

Есть ли причина, по которой вам необходимо переопределить метод загрузки? То, что вы добавляете, уже выполняется с помощью фреймворка, поэтому оно не представляется необходимым.

+1

Да, вы правы. Я просто удалил комментарий из parent :: boot() в базовом классе, и теперь кажется, что он работает нормально. – Dev

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