Skip to content

Commit

Permalink
feat: 9. Database Seeder
Browse files Browse the repository at this point in the history
  • Loading branch information
mfl4 committed Nov 30, 2023
1 parent 5fcc78f commit ead006d
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 5 deletions.
5 changes: 5 additions & 0 deletions app/Models/Post.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,9 @@ public function category()
{
return $this->belongsTo(Category::class);
}

public function user()
{
return $this->belongsTo(User::class);
}
}
5 changes: 5 additions & 0 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,9 @@ class User extends Authenticatable
'email_verified_at' => 'datetime',
'password' => 'hashed',
];

public function posts()
{
return $this->hasMany(Post::class);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public function up(): void
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->foreignId('category_id');
$table->foreignId('user_id');
$table->string('title');
$table->string('slug')->unique();
$table->text('excerpt');
Expand Down
84 changes: 83 additions & 1 deletion database/seeders/DatabaseSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
namespace Database\Seeders;

// use Illuminate\Database\Console\Seeds\WithoutModelEvents;

use App\Models\Category;
use App\Models\Post;
use App\Models\User;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
Expand All @@ -17,6 +21,84 @@ public function run(): void
// \App\Models\User::factory()->create([
// 'name' => 'Test User',
// 'email' => '[email protected]',
// ]);
// ]);\

User::create([
'name' => 'John Doe',
'email' => '[email protected]',
'password' => bcrypt('password'),
]);

User::create([
'name' => 'Jack Doe',
'email' => '[email protected]',
'password' => bcrypt('password'),
]);

User::create([
'name' => 'Jane Doe',
'email' => '[email protected]',
'password' => bcrypt('password'),
]);

Category::create([
'name' => 'Personal',
'slug' => 'personal',
]);

Category::create([
'name' => 'Programming',
'slug' => 'programming',
]);

Category::create([
'name' => 'Design',
'slug' => 'design',
]);

Post::create([
'title' => 'First Post',
'slug' => 'first-post',
'excerpt' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis purus sit amet volutpat. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Dictum varius duis at consectetur. Enim ut tellus elementum sagittis vitae et leo duis. Purus in massa tempor nec. Venenatis cras sed felis eget velit aliquet sagittis id consectetur. Placerat vestibulum lectus mauris ultrices eros in cursus turpis massa. Enim sed faucibus turpis in eu mi. Blandit aliquam etiam erat velit scelerisque.',
'category_id' => 1,
'user_id' => 3,
]);

Post::create([
'title' => 'Second Post',
'slug' => 'second-post',
'excerpt' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis purus sit amet volutpat. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Dictum varius duis at consectetur. Enim ut tellus elementum sagittis vitae et leo duis. Purus in massa tempor nec. Venenatis cras sed felis eget velit aliquet sagittis id consectetur. Placerat vestibulum lectus mauris ultrices eros in cursus turpis massa. Enim sed faucibus turpis in eu mi. Blandit aliquam etiam erat velit scelerisque.',
'category_id' => 2,
'user_id' => 2,
]);

Post::create([
'title' => 'Third Post',
'slug' => 'third-post',
'excerpt' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis purus sit amet volutpat. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Dictum varius duis at consectetur. Enim ut tellus elementum sagittis vitae et leo duis. Purus in massa tempor nec. Venenatis cras sed felis eget velit aliquet sagittis id consectetur. Placerat vestibulum lectus mauris ultrices eros in cursus turpis massa. Enim sed faucibus turpis in eu mi. Blandit aliquam etiam erat velit scelerisque.',
'category_id' => 3,
'user_id' => 1,
]);

Post::create([
'title' => 'Fourth Post',
'slug' => 'fourth-post',
'excerpt' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis purus sit amet volutpat. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Dictum varius duis at consectetur. Enim ut tellus elementum sagittis vitae et leo duis. Purus in massa tempor nec. Venenatis cras sed felis eget velit aliquet sagittis id consectetur. Placerat vestibulum lectus mauris ultrices eros in cursus turpis massa. Enim sed faucibus turpis in eu mi. Blandit aliquam etiam erat velit scelerisque.',
'category_id' => 3,
'user_id' => 3,
]);

Post::create([
'title' => 'Fifth Post',
'slug' => 'fifth-post',
'excerpt' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis purus sit amet volutpat. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Dictum varius duis at consectetur. Enim ut tellus elementum sagittis vitae et leo duis. Purus in massa tempor nec. Venenatis cras sed felis eget velit aliquet sagittis id consectetur. Placerat vestibulum lectus mauris ultrices eros in cursus turpis massa. Enim sed faucibus turpis in eu mi. Blandit aliquam etiam erat velit scelerisque.',
'category_id' => 1,
'user_id' => 1,
]);
}
}
5 changes: 3 additions & 2 deletions resources/views/post.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
@section('container')
<h1 class="mb-5">{{ $post->title }}</h1>

<p>By Mhd. Farhan Lubis in <a href="/categories/{{ $post->category->slug }}">{{ $post->category->name }}</a></p>
<p>By <a href="#" class="text-decoration-none">{{ $post->user->name }}</a> in <a
href="/categories/{{ $post->category->slug }}" class="text-decoration-none">{{ $post->category->name }}</a></p>

{!! $post->body !!}

<a href="/posts">Back to Posts</a>
<a href="/posts" class="d-block mt-3 text-decoration-none">Back to Posts</a>
@endsection
9 changes: 7 additions & 2 deletions resources/views/posts.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@
<h1 class="mb-5">All Posts</h1>

@foreach ($posts as $post)
<article>
<h2><a href="/posts/{{ $post->slug }}">{{ $post->title }}</a></h2>
<article class="mb-5 border-bottom pb-4">
<h2><a href="/posts/{{ $post->slug }}" class="text-decoration-none">{{ $post->title }}</a></h2>
<p>By. <a href="#" class="text-decoration-none">{{ $post->user->name }}</a> in <a
href="/categories/{{ $post->category->slug }}"
class="text-decoration-none">{{ $post->category->name }}</a>
</p>
<p>{{ $post->excerpt }}</p>
<a href="/posts/{{ $post->slug }}" class="text-decoration-none">Read More...</a>
</article>
@endforeach
@endsection

0 comments on commit ead006d

Please sign in to comment.