今天要搞定Create!
先來處理資料庫,使用Migration建立資料表。
php artisan make:migration create_posts_table
除了預設的欄位之外再加一個content欄位來存放內文。
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('content');
$table->timestamps();
});
}
然後下個migrate
指令執行。
四張表ヽ( ° ▽°)ノ
接著是新增一個Model檔來使用:
php artisan make:model Post
先一切從簡,只有指定資料表暫時不動時間戳記。
class Post extends Model
{
protected $table = 'posts';
}
OK,資料庫準備就緒,回到Controller!先看看直接寫入能不能新增資料到資料庫去,用Route來試。
use App\Post;
public function create()
{
$post = new Post;
$post->content = 'My first post.';
$post->save();
}
// web.php
Route::get('/post_test', 'UserController@create');
↓↓↓↓↓↓↓↓↓↓↓↓↓
成功!
現在我在home.blade.php
上增加一個區塊放Form。
<div class="card-body">
<form method="POST" action="create">
@csrf
<input type="text" name="content">
<button type="submit" class="btn btn-primary">POST</button>
</form>
</div>
它現在會看起來像這樣↓
Controller也要做點修正,我們將原本的文字改成接收Request裡的字串,資料存進資料庫後重新導回 http://localhost/home 。
// UserController.php
public function create(Request $request)
{
$post = new Post;
$post->content = $request->input('content');
$post->save();
return redirect()->route('home');
}
來試看看。
大成功!!!!!!(只是這個時間誤差⋯⋯