-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUsersTableSeeder.php
52 lines (41 loc) · 1.61 KB
/
UsersTableSeeder.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
namespace Database\Seeders;
use App\News;
use App\Permission;
use App\Post;
use App\Role;
use App\Tag;
use App\User;
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
public function run()
{
$registeredPermissions = ['view-posts', 'create-posts', 'update-posts', 'delete-posts'];
$registeredPermissions = Permission::whereIn('slug', $registeredPermissions)->get();
$registeredRole = Role::where('slug', 'registered')->first();
$registeredRole->permissions()->attach(Permission::all());
$tags = Tag::factory()->count(10)->create();
$admin = User::where('email', env('ADMIN_EMAIL_FOR_NOTIFICATIONS'))->first();
$admin->posts()->saveMany(Post::factory()->count(2)->create());
$admin->posts()->each(function ($post) use ($tags) {
$post->tags()->attach($tags->random(random_int(0, 2)));
});
User::factory()
->has(Post::factory()->hasHistory(random_int(0,3))->hasComments(random_int(0,3))->count(9))
->count(3)
->create()
->each(function (User $user) use ($registeredRole, $registeredPermissions, $tags) {
$user->roles()->attach($registeredRole);
$user->permissions()->attach($registeredPermissions);
$user->posts()->each(function ($post) use ($tags) {
$post->tags()->attach($tags->random(random_int(1, 2)));
});
})
;
$news = News::all();
foreach ($news as $new) {
$new->tags()->attach($tags->random(random_int(0,1)));
}
}
}