From df2f45a26ccec4c8aafbfa95ec9ced0422de4ae7 Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Thu, 27 Apr 2023 15:49:51 +0800 Subject: [PATCH] add ArticleFactory --- app/Admin/Controllers/ArticleController.php | 1 + database/factories/ArticleFactory.php | 40 +++++++++++++++++++++ database/seeders/ArticleSeeder.php | 6 +++- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 database/factories/ArticleFactory.php diff --git a/app/Admin/Controllers/ArticleController.php b/app/Admin/Controllers/ArticleController.php index 8d64294..2271bc5 100644 --- a/app/Admin/Controllers/ArticleController.php +++ b/app/Admin/Controllers/ArticleController.php @@ -29,6 +29,7 @@ class ArticleController extends AdminController TableColumn::make()->name('category.name')->label(__('article.category_id'))->className('text-primary'), Image::make()->name('cover')->label(__('article.cover'))->width(100), TableColumn::make()->name('sub_title')->label(__('article.sub_title')), + TableColumn::make()->name('sort')->label(__('article.sort'))->align('center')->quickEdit(Components::make()->sortControl('sort', __('article-category.sort'))->saveImmediately(true)), TableColumn::make()->name('is_enable')->type('switch')->label(__('article.is_enable'))->quickEdit(SwitchControl::make()->saveImmediately(true)->mode('inline')), TableColumn::make()->name('published_at')->label(__('article.published_at')), $this->rowActions(), diff --git a/database/factories/ArticleFactory.php b/database/factories/ArticleFactory.php new file mode 100644 index 0000000..5ba0c22 --- /dev/null +++ b/database/factories/ArticleFactory.php @@ -0,0 +1,40 @@ + + */ +class ArticleFactory extends Factory +{ + protected $model = Article::class; + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + $imgs = [ + 'https://qiniu.abcdefg.fun/banner.png', + 'https://qiniu.abcdefg.fun/banner1.png', + 'https://qiniu.abcdefg.fun/banner2.png', + 'https://qiniu.abcdefg.fun/banner3.png', + ]; + $category = ArticleCategory::where('level', 3)->inRandomOrder()->first(); + return [ + 'author' => $this->faker->name(), + 'category_id' => $category->id, + 'category_path' => $category->path . $category->id . '-', + 'content' => $this->faker->text(), + 'cover' => $this->faker->randomElement($imgs), + 'published_at' => now(), + 'sort' => 0, + 'sub_title' => $this->faker->sentence, + 'title' => $this->faker->sentence, + ]; + } +} diff --git a/database/seeders/ArticleSeeder.php b/database/seeders/ArticleSeeder.php index f9e94fc..b6539c6 100644 --- a/database/seeders/ArticleSeeder.php +++ b/database/seeders/ArticleSeeder.php @@ -4,8 +4,9 @@ namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; -use App\Models\ArticleCategory; +use App\Models\{Article, ArticleCategory}; use Illuminate\Support\Arr; +use Database\Factories\ArticleFactory; class ArticleSeeder extends Seeder { @@ -71,6 +72,9 @@ class ArticleSeeder extends Seeder ]; ArticleCategory::truncate(); $this->createCategory($categoryList, 0); + + Article::truncate(); + (new ArticleFactory)->count(100)->create(); } protected function createCategory($list, $pid = 0)