У меня есть древовидная структура модели.
Я пытаюсь удалить родителя, и все потомки должны быть удалены с помощью отправленного события deleted
.
Я также пытаюсь удалить всеизображения всех узлов-потомков.
Я использую MongoDb ext, Treetrait, как вы можете видеть.
Я зарегистрировал некоторые сообщения, чтобы увидеть, было ли отправлено событиевызывается несколько раз, но вызывается только один раз при удалении родительской модели.
У меня такое ощущение, что отправленное событие deleted
не запускается из-за события mass
delete.
Кто-нибудь сталкивался с чем-то подобным?
Я использую ext https://github.com/beyondlex/mongotree
и который использует ext https://github.com/lazychaser/laravel-nestedset
Это модель:
<?php
namespace App;
use Jenssegers\Mongodb\Eloquent\Model as Model;
use Lex\Mongotree\TreeTrait;
class Department extends Model
{
use TreeTrait;
protected $dispatchesEvents = [
'deleted' => \App\Events\DepartmentDeleted::class,
];
}
Это событие:
<?php
namespace App\Events;
use App\Department;
class DepartmentDeleted
{
public $department;
public function __construct(Department $department)
{
$this->$department = $department;
\Log::debug(json_encode($department->getAttributes()));
$destination_path = public_path('/images/');
if (
$department->image['en'] != ''
&&
file_exists($destination_path . $department->image['en'])
) {
\Log::debug('deleting file en' . $department->image['en']);
unlink($destination_path . $department->image['en']);
}
if (
$department->image['ar'] != ''
&&
file_exists($destination_path . $department->image['ar'])
) {
\Log::debug('deleting file ar' . $department->image['ar']);
unlink($destination_path . $department->image['ar']);
}
}
}