Нет результатов запроса для модели [App\Models\Spbu] при удалении в наблюдателеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Нет результатов запроса для модели [App\Models\Spbu] при удалении в наблюдателе

Сообщение Anonymous »

Создание и обновление работают правильно, но когда я пытаюсь удалить, задание очереди всегда завершается с ошибкой. Когда я проверяю таблицуfail_jobs, я вижу исключение

Код: Выделить всё

Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [App\Models\Spbu]
это мой код наблюдателя

Код: Выделить всё

class SpbuObserver
{
/**
* Handle the Spbu "created" event.
*/
public function created(Spbu $spbu): void
{
SyncSpbu::dispatch($spbu, 'create');
}

/**
* Handle the Spbu "updated" event.
*/
public function updated(Spbu $spbu): void
{
SyncSpbu::dispatch($spbu, 'update');
}

/**
* Handle the Spbu "deleted" event.
*/
public function deleted(Spbu $spbu): void
{
SyncSpbu::dispatch($spbu, 'delete');
}

/**
* Handle the Spbu "restored" event.
*/
public function restored(Spbu $spbu): void
{
//
}

/**
* Handle the Spbu "force deleted" event.
*/
public function forceDeleted(Spbu $spbu): void
{
//
}
}
и это мой код вакансии

Код: Выделить всё

class SyncSpbu implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable;

protected $spbu;
protected $action;

/**
* Create a new job instance.
* @param Spbu $spbu
* @param string $action (create|update|delete)
*/
public function __construct(Spbu $spbu, string $action)
{
$this->spbu = $spbu;
$this->action = $action;
}

/**
* Execute the job.
*/
public function handle()
{
$tenants = Tenant::all();

foreach ($tenants as $tenant) {
tenancy()->initialize($tenant);

try {
switch ($this->action) {
case 'create':
case 'update':
$tenantSpbu = TenantSpbu::updateOrCreate(
['id' => $this->spbu->id],
[
'id' =>  $this->spbu->id,
'nama' => $this->spbu->nama,
'alamat' => $this->spbu->alamat,
'latitude' => $this->spbu->latitude,
'longitude' => $this->spbu->longitude,
]
);
break;

case 'delete':
TenantSpbu::find($this->spbu->id)->delete();
break;
}
} catch (\Exception $e) {
Log::error("Error syncing SPBU to tenant {$tenant->id}: " . $e->getMessage());
}

tenancy()->end();
}
}
}
Я использую мультитенантный Laravel. Я хочу, чтобы данные в центральном домене синхронизировались между всеми арендаторами при каждом их обновлении или создании. Однако проблема в том, что когда я пытаюсь удалить данные, задание очереди завершается неудачей.

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-observer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»