1
0
Fork 0

add ArticleFactory

develop
panliang 2023-04-27 15:49:51 +08:00
parent f8389d8d99
commit df2f45a26c
3 changed files with 46 additions and 1 deletions

View File

@ -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(),

View File

@ -0,0 +1,40 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use App\Models\{Article, ArticleCategory};
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Article>
*/
class ArticleFactory extends Factory
{
protected $model = Article::class;
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
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,
];
}
}

View File

@ -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)