Professional Documents
Culture Documents
07 - Lesson 7 - Second Model LaravelDaily - Laravel-9-Beginners@f6124c6 GitHub
07 - Lesson 7 - Second Model LaravelDaily - Laravel-9-Beginners@f6124c6 GitHub
Commit
3 3 namespace App\Http\Controllers;
app 4 4
11 app/Models/Post.php
1 + <?php
2 +
3 + namespace App\Models;
4 +
5 + use Illuminate\Database\Eloquent\Factories\HasFactory;
6 + use Illuminate\Database\Eloquent\Model;
7 +
8 + class Post extends Model
9 + {
10 + use HasFactory;
11 + }
34 database/migrations/2022_04_09_060855_create_posts_table.php
1 + <?php
2 +
3 + use Illuminate\Database\Migrations\Migration;
4 + use Illuminate\Database\Schema\Blueprint;
5 + use Illuminate\Support\Facades\Schema;
6 +
7 + return new class extends Migration
8 + {
9 + /**
10 + * Run the migrations.
11 + *
12 + * @return void
13 + */
14 + public function up()
15 + {
16 + Schema::create('posts', function (Blueprint $table) {
17 + $table->id();
18 + $table->string('title');
19 + $table->text('post_text');
20 + $table->foreignId('category_id')->constrained();
21 + $table->timestamps();
22 + });
23 + }
24 +
25 + /**
26 + * Reverse the migrations.
27 + *
28 + * @return void
29 + */
30 + public function down()
31 + {
32 + Schema::dropIfExists('posts');
33 + }
34 + };
80 resources/views/index.blade.php
15 15 <div class="row">
16 16 <!-- Blog entries-->
17 17 <div class="col-lg-8">
18 - <!-- Featured blog post-->
19 - <div class="card mb-4">
20 - <a href="#!"><img class="card-img-top" src="https://dummyimage.com/850x350
/dee2e6/6c757d.jpg" alt="..." /></a>
21 - <div class="card-body">
22 - <div class="small text-muted">January 1, 2022</div>
23 - <h2 class="card-title">Featured Post Title</h2>
24 - <p class="card-text">Lorem ipsum dolor sit amet, consectetur adipisicing
elit. Reiciendis aliquid atque, nulla? Quos cum ex quis soluta, a laboriosam. Dicta expedita
corporis animi vero voluptate voluptatibus possimus, veniam magni quis!</p>
25 - <a class="btn btn-primary" href="#!">Read more →</a>
26 - </div>
27 - </div>
28 18 <!-- Nested row for non-featured blog posts-->
29 19 <div class="row">
20 + @foreach ($posts as $post)
30 21 <div class="col-lg-6">
31 22 <!-- Blog post-->
32 23 <div class="card mb-4">
33 24 <a href="#!"><img class="card-img-top" src="https://dummyimage.com
/700x350/dee2e6/6c757d.jpg" alt="..." /></a>
34 25 <div class="card-body">
35 - <div class="small text-muted">January 1, 2022</div>
36 - <h2 class="card-title h4">Post Title</h2>
37 - <p class="card-text">Lorem ipsum dolor sit amet, consectetur
adipisicing elit. Reiciendis aliquid atque, nulla.</p>
38 - <a class="btn btn-primary" href="#!">Read more →</a>
39 - </div>
40 - </div>
41 - <!-- Blog post-->
42 - <div class="card mb-4">
43 - <a href="#!"><img class="card-img-top" src="https://dummyimage.com
/700x350/dee2e6/6c757d.jpg" alt="..." /></a>
44 - <div class="card-body">
45 - <div class="small text-muted">January 1, 2022</div>
46 <h2 class card-title h4 >Post Title</h2>
47 - <p class="card-text">Lorem ipsum dolor sit amet, consectetur
adipisicing elit. Reiciendis aliquid atque, nulla.</p>
48 - <a class="btn btn-primary" href="#!">Read more →</a>
49 - </div>
50 - </div>
51 - </div>
52 - <div class="col-lg-6">
53 - <!-- Blog post-->
54 - <div class="card mb-4">
55 - <a href="#!"><img class="card-img-top" src="https://dummyimage.com
/700x350/dee2e6/6c757d.jpg" alt="..." /></a>
56 - <div class="card-body">
57 - <div class="small text-muted">January 1, 2022</div>
58 - <h2 class="card-title h4">Post Title</h2>
59 - <p class="card-text">Lorem ipsum dolor sit amet, consectetur
adipisicing elit. Reiciendis aliquid atque, nulla.</p>
60 - <a class="btn btn-primary" href="#!">Read more →</a>
61 - </div>
62 - </div>
63 - <!-- Blog post-->
64 - <div class="card mb-4">
65 - <a href="#!"><img class="card-img-top" src="https://dummyimage.com
/700x350/dee2e6/6c757d.jpg" alt="..." /></a>
66 - <div class="card-body">
67 - <div class="small text-muted">January 1, 2022</div>
68 - <h2 class="card-title h4">Post Title</h2>
69 - <p class="card-text">Lorem ipsum dolor sit amet, consectetur
adipisicing elit. Reiciendis aliquid atque, nulla? Quos cum ex quis soluta, a
laboriosam.</p>
26 + <div class="small text-muted">{{ $post->created_at }}</div>
27 + <h2 class="card-title h4">{{ $post->title }}</h2>
28 + <p class="card-text">{{ $post->post_text }}</p>
70 29 <a class="btn btn-primary" href="#!">Read more →</a>
71 30 </div>
72 31 </div>
73 32 </div>
33 + @endforeach
74 34 </div>
75 - <!-- Pagination-->
76 - <nav aria-label="Pagination">
77 - <hr class="my-0" />
78 - <ul class="pagination justify-content-center my-4">
79 - <li class="page-item disabled"><a class="page-link" href="#"
tabindex="-1" aria-disabled="true">Newer</a></li>
80 - <li class="page-item active" aria-current="page"><a class="page-link"
href="#!">1</a></li>
81 - <li class="page-item"><a class="page-link" href="#!">2</a></li>
82 - <li class="page-item"><a class="page-link" href="#!">3</a></li>
83 - <li class="page-item disabled"><a class="page-link" href="#!">...
</a></li>
84 - <li class="page-item"><a class="page-link" href="#!">15</a></li>
85 - <li class="page-item"><a class="page-link" href="#!">Older</a></li>
86 - </ul>
87 - </nav>
88 35 </div>
89 36 <!-- Side widgets-->
90 37 <div class="col-lg-4">
91 - <!-- Search widget-->
92 - <div class="card mb-4">
93 - <div class="card-header">Search</div>
94 - <div class="card-body">
95 - <div class="input-group">
96 - <input class="form-control" type="text" placeholder="Enter search
term..." aria-label="Enter search term..." aria-describedby="button-search" />
97 - <button class="btn btn-primary" id="button-search" type="button">Go!
</button>
98 - </div>
99 - </div>
100 - </div>
101 38 <!-- Categories widget-->
102 39 <div class="card mb-4">
103 40 <div class="card-header">Categories</div>
106 43 <div class="col-sm-12">
107 44 <ul class="list-unstyled mb-0">
108 45 @foreach($categories as $category)
109 - <li><a href="#!">{{ $category->name }}</a></li>
46 + <li><a href="{{ route('home') }}?category_id={{
$category->id }}">{{ $category->name }}</a></li>
110 47 @endforeach
111 48 </ul>
112 49 </div>
113 50 </div>
114 51 </div>
115 52 </div>
116 - <!-- Side widget-->
117 - <div class="card mb-4">
118 - <div class="card-header">Side Widget</div>
119 - <div class="card-body">You can put anything you want inside of these side
widgets. They are easy to use, and feature the Bootstrap 5 card component!</div>
120 - </div>
121 53 </div>
122 54 </div>
123 55 </div>