用戶系統做好了,資料庫結構也處理好了,現在我們可以開始做表單,讓用戶可以貼文章囉!
我們先來製作針對 Post
的表單。
大家還記得針對資料庫的五種操作嗎?
如果忘記了,趕快回去看看[Day 11] 物件該怎麼使用!聊 Model 的 BREAD
要一次建立所有針對 Post
物件的 BREAD 操作,雖然不覺得很難,但是份量有一點多。
幸好!Laravel 在這裏有簡單的指令可以產生!
我們輸入
$ php artisan make:controller PostController --resource --model=Post
Controller created successfully.
然後看看產生的 PostController
長得怎樣
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
......
裡面已經幫我們建立好架構啦!太方便了
然後,我們在 routes/web.php
裡面宣告
Route::resource('posts', 'PostController');
這樣宣告,等同一次宣告了七個個別的路徑!
為什麼是七個呢?我們來看看分別是哪七個
動作 | 網址 | 對應函式名稱 | route 名稱 |
---|---|---|---|
GET | /posts | index | posts.index |
GET | /posts/create | create | posts.create |
POST | /posts | store | posts.store |
GET | /posts/{post} | show | posts.show |
GET | /posts/{post}/edit | edit | posts.edit |
PUT/PATCH | /posts/{post} | update | posts.update |
DELETE | /posts/{post} | destroy | posts.destroy |
其中比較難理解的,應該是 store
和 update
兩個函式。不過沒關係,我們繼續往下,自然就會知道這兩個函式的妙用。
首先,我們先測試一下路徑是否正確連接。
我們把 PostController
裡面的 index
改寫一下
public function index()
{
return view('posts.index');
}
接著,我們加入 resources/views/posts/index.blade.php
,內容為
列舉所有文章
然後連線到 http://127.0.0.1/posts/ ,成功的話,就可以看到「列舉所有文章」囉!
用我們之前學到畫面的方式,改寫一下 index
傳入所有文章
public function index()
{
return view('posts.index', ['posts' => Post::cursor()]);
}
接著,我們改寫一下 index.blade.php
來顯示所有文章
列舉所有文章
<hr />
@foreach($posts as $post)
{{ $post->content }}
<hr />
@endforeach
成功的話,畫面應該會看到大量的文章內容,我們這一階段就成功囉!
總結一下今天的所學
今天我們學到怎麼利用 Laravel 的 resource
指令,快速的建立操作的 controller,以及怎麼建立對應的 route
希望今天大家覺得滿意!我們明天見!