Я использую 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
заявления. Это не предотвращает удаленные записи.
Я не уверен, где я делаю ошибку?
Любые эксперты, доступные здесь? – Dev