File "SortSeeder.php"

Full Path: /var/www/html/back/database/seeders/SortSeeder.php
File size: 1.24 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace Database\Seeders;


use App\Models\Article;
use App\Models\ArticleGroup;
use Illuminate\Database\Seeder;

class SortSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        $models = [1, 2, 3];

        foreach ($models as $model) {
            $articles = Article::where('model_id', $model)
                ->where('id', '!=', 1)
                ->orderBy('article_group_id')
                ->orderBy('id')
                ->get()
                ->groupBy(['article_group_id', 'article_type']);

            foreach ($articles as $articleGroup) {
                foreach ($articleGroup as $group) {
                    $sort = 0;
                    foreach ($group as $item) {
                        $item->sort = $sort++;
                        $item->save();
                    }
                }
            }

            $groups = ArticleGroup::where('model_id', $model)
                ->get()
                ->groupBy(['article_type']);

            foreach ($groups as $item) {
                $sort = 0;
                foreach ($item as $value) {
                    $value->sort = $sort++;
                    $value->save();
                }
            }
        }
    }
}