2026_05_07_100000_create_page_sections_table.php 1.0 KB

123456789101112131415161718192021222324252627
  1. <?php
  2. use Illuminate\Database\Migrations\Migration;
  3. use Illuminate\Database\Schema\Blueprint;
  4. use Illuminate\Support\Facades\Schema;
  5. // Привязка блоков к страницам с произвольным порядком отображения.
  6. // Один блок может быть добавлен на несколько страниц — уникальность (page_id, block_id).
  7. return new class extends Migration
  8. {
  9. public function up(): void
  10. {
  11. Schema::create('page_sections', function (Blueprint $table) {
  12. $table->id();
  13. $table->foreignId('page_id')->constrained()->cascadeOnDelete();
  14. $table->foreignId('block_id')->constrained()->cascadeOnDelete();
  15. $table->unsignedInteger('sort_order')->default(0); // позиция блока на странице
  16. $table->unique(['page_id', 'block_id']);
  17. $table->timestamps();
  18. });
  19. }
  20. public function down(): void
  21. {
  22. Schema::dropIfExists('page_sections');
  23. }
  24. };