今天做的是Read,顯示Create的文章!
這是View:
// home.blade.php
@if (isset($posts))
<div class="card">
<div class="card-header">{{ Auth::user()->name }}</div>
@foreach($posts as $post)
<div class="card-body">
<p>{{ $post->content }}</p>
</div>
@endforeach
</div>
@endif
名字的部分本來應該從使用者名單裡找,但我們暫時還沒有好友之類的功能所以先用Auth::user()->name
,它會去找登入的使用者的名稱。
我們希望一登入帳號,home.blade.php
載入的時候就要顯示過去發表過的東西,所以不只改UserController.php
,還要動到預設的HoneController.php
。
首頁預設是return view('home')
,要改為呼叫UserController並使用它身上的show()
方法:
// HomeController.php
public function index()
{
return app('App\Http\Controllers\UserController')->show();
}
這個方法一樣是會回傳Home View,不過我們要加入資料庫的資料:
// UserController.php
public function show()
{
$post = Post::orderBy('id', 'DESC')->get();
return view('home')->with('posts', $post);
}
Post::orderBy('id', 'DESC')
會使用Post Model去查詢,回傳的資料是依照id做降冪排列,這樣顯示出來的文章才會新的在上方。
攜帶資料的方法有三種:
// 第一種
view('home')->with('post', $post);
// 第二種
view('home', ['post' => $post]);
// 第三種
view('home', compact('post'));
我是比較喜歡第一種XDDDDDDDDD
現在來登入發文看看。
再發出去的內容也依照新到舊的順序排好了!