Laravel Auditing — это мощный пакет, который позволяет разработчикам отслеживать и регистрировать изменения, внесенные в их модели. В этой статье мы рассмотрим концепцию публикации в лотках в Laravel Auditing. Публикация в лотке — это процесс хранения журналов аудита в отдельной таблице базы данных, часто называемой «таблицей в лотке». Мы углубимся в различные методы и предоставим примеры кода, которые помогут вам понять реализацию публикации в лотках в Laravel Auditing.
Методы публикации в панели аудита Laravel:
-
Использование конфигурации аудита Laravel по умолчанию:
Laravel Auditing предоставляет конфигурацию по умолчанию, которая позволяет публиковать лотки «из коробки». Просто установив и настроив пакет, вы можете начать использовать публикацию в лотке. Вот пример:
// app/config/audit.php return [ 'driver' => 'database', 'table' => 'audits', 'tray' => 'audits_tray', // ... ]; -
Создание лотка вручную:
Если вы предпочитаете иметь больше контроля над структурой таблицы лотков, вы можете создать таблицу вручную, используя функцию миграции Laravel. Вот пример:
// CreateAuditsTrayTable.php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateAuditsTrayTable extends Migration { public function up() { Schema::create('audits_tray', function (Blueprint $table) { $table->increments('id'); $table->unsignedBigInteger('audit_id'); $table->foreign('audit_id')->references('id')->on('audits'); // ... $table->timestamps(); }); } public function down() { Schema::dropIfExists('audits_tray'); } } -
Определение пользовательской модели лотка:
Laravel Auditing позволяет вам определить собственную модель для таблицы лотков. Это обеспечивает гибкость при добавлении дополнительных функций или взаимосвязей к таблице лотков. Вот пример:
// app/Models/AuditTray.php namespace App\Models; use Illuminate\Database\Eloquent\Model; class AuditTray extends Model { protected $table = 'audits_tray'; // Additional relationships and methods... }// app/config/audit.php return [ 'driver' => 'database', 'table' => 'audits', 'tray' => App\Models\AuditTray::class, // ... ]; -
Настройка порога публикации в лотке:
Laravel Auditing позволяет вам установить пороговое значение для контроля перемещения журналов аудита из основной таблицы в таблицу лотка. Это может быть полезно для оптимизации производительности в случаях, когда основная таблица становится слишком большой. Вот пример:
// app/config/audit.php return [ 'driver' => 'database', 'table' => 'audits', 'tray' => 'audits_tray', 'threshold' => 1000, // ... ];
В этой статье мы рассмотрели различные методы реализации публикации в лотках в Laravel Auditing. Независимо от того, решите ли вы использовать конфигурацию по умолчанию, вручную создать таблицу лотков, определить пользовательскую модель лотка или настроить порог публикации лотка, Laravel Auditing обеспечивает гибкость в соответствии с вашими конкретными требованиями. Используя публикацию в лотках, вы можете эффективно управлять журналами аудита и хранить их в отдельной таблице, повышая производительность и организацию ваших приложений Laravel.
Не забудьте ознакомиться с документацией по аудиту Laravel для получения дополнительной информации и вариантов настройки.