上一篇有點富堅了,說要讓外送茶留言
結果只有顯示自己手動新增的訊息,說好的外送茶呢!
別急阿,你這不就見到了嗎
當然要先在 view 設計一個表單可以填入留言內容
加在之前的 show.blade.php 最後面,因為留言區域在文章最後面
爽了,畫面有表單
現在要給送出按鈕做點事情,來到 \routes\web.php
加入我們剛剛 form 表單定義的資料傳送位置
Route::post('/posts/{post}/comments', 'CommentsController@store');
為了保持原有 PostComtroller 的簡潔,所以建一個新的CommetsController
使用
建立好 model 跟 Controller 之後,就是設計對應動作
在 CommentsController.php 中設計 store() 因為我們是要寫入資料庫
我們先給留言限制為必填,並且至少兩個字元
因為 function 傳入值使用到了 Post 這個 model
在檔案開頭必須加上
接著呼叫 Post model 中的 addComment 方法
在 app/Post.php 內新建 addComment 方法來寫入資料庫
因為我們要用到 Comment 這個 model
而我們之前就已經建立過了,只需要 new 一個出來就可以使用
然後就跟之前新增文章一樣作法
特別的是,因為我們現在所在的位置是 Post 這個 model 底下
所以可以使用
刷新頁面現在應該可以針對文章做評論了
如果你喜歡的話,可以把錯誤訊息區塊加入畫面
如此就完成了文章下方留言的功能!
結果只有顯示自己手動新增的訊息,說好的外送茶呢!
別急阿,你這不就見到了嗎
當然要先在 view 設計一個表單可以填入留言內容
加在之前的 show.blade.php 最後面,因為留言區域在文章最後面
<div class="card">
<div class="card-block">
<form action="POST" action="/posts/{{ $post->id }}/comments">
{{ csrf_field() }}
<div class="form-group">
<textarea name="body" placeholder="請輸入留言內容" class="form-control"></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">留言</button>
</div>
</form>
</div>
</div>
爽了,畫面有表單
現在要給送出按鈕做點事情,來到 \routes\web.php
加入我們剛剛 form 表單定義的資料傳送位置
Route::post('/posts/{post}/comments', 'CommentsController@store');
為了保持原有 PostComtroller 的簡潔,所以建一個新的CommetsController
使用
$ php artisan make:controller CommentsController -r影片上是沒有使用 -r 但是我覺得這樣比較懶人所以加了
建立好 model 跟 Controller 之後,就是設計對應動作
在 CommentsController.php 中設計 store() 因為我們是要寫入資料庫
public function store(Post $post)
{
$this->validate(\request(), ['body' => 'required|min:2']);
$post->addComment(\request('body'));
return back();
}
我們先給留言限制為必填,並且至少兩個字元
因為 function 傳入值使用到了 Post 這個 model
在檔案開頭必須加上
use App\Post來指定命名空間
接著呼叫 Post model 中的 addComment 方法
在 app/Post.php 內新建 addComment 方法來寫入資料庫
public function addComment()
{
$comment = new Comment;
$comment->post_id = $this->id;
$comment->body = request('body');
$comment->save();
}
因為我們要用到 Comment 這個 model
而我們之前就已經建立過了,只需要 new 一個出來就可以使用
然後就跟之前新增文章一樣作法
特別的是,因為我們現在所在的位置是 Post 這個 model 底下
所以可以使用
$this來代表當前所在的實體,就可以找到對應欄位
刷新頁面現在應該可以針對文章做評論了
如果你喜歡的話,可以把錯誤訊息區塊加入畫面
如此就完成了文章下方留言的功能!
留言
張貼留言