OA's 常用設定

編輯 Article Comments Controller

  • /resources/views/articles/index.blade.php 的 table 內加入檢視留言連結

      // ...
      <th>檢視留言</th>
      // ...
      <td>
          {!! link_to_route('articles.comments.index', '檢視留言', $article) !!}
      </td>
      // ...
    
  • 開啟 /app/Http/Controllers/ArticleCommentsController.php 檔案開頭加入 use App\Article; 加入 Model

  • 修改 index method,新增參數取出 Article ID,取得該筆資料後取出所有 Comment,並且導入 articles.comments.index 樣板

      public function index(id)
      {
          $article = Article::findOrFail($id);
          return view('articles.comments.index', [
                  'article' => $article
              ]);
      }
    
  • 因為 Article 下沒有 comments 的 model,所以開啟編輯 /App/Article.php 加入 comments method

      public function comments ()
      {
          return $this->hasMany('App\Comment');
      }
    
  • views 資料夾 /resources/views/articles 下建立 comments 目錄,並且新增編輯 index.blade.php,如 article index 開始一樣加入兩個連結。

      {!! link_to_route('articles.index', '文章列表') !!}
      {!! link_to_route('articles.comments.index', '留言列表', $article) !!}
      {!! link_to_route('articles.comments.create', '新增留言', $article) !!}
      <hr />
      <hr />
    
    • 因為是 article 下的 comments 巢狀,為了符合 RESTful 的網址定義,所以 link_to_route 都要加上第三個參數,以設定 article ID
    • link_to_route 第三個參數正常來說是要放 $article->id,但如果放 Model object 那 Laraval 會自動提取 id