🥽

コントローラー作成

2023/11/16に公開

コントローラを作っていく

bin/cake bake controller Articles
# src/Controller/ArticlesController.phpが作成される
ArticlesController.php
<?php
declare(strict_types=1);

namespace App\Controller;

/**
 * Articles Controller
 *
 * @property \App\Model\Table\ArticlesTable $Articles
 * @method \App\Model\Entity\Article[]|\Cake\Datasource\ResultSetInterface paginate($object = null, array $settings = [])
 */
class ArticlesController extends AppController
{
    /**
     * Index method
     *
     * @return \Cake\Http\Response|null|void Renders view
     */
    public function index()
    {
        $this->loadComponent('Paginator');
        $articles = $this->Paginator->paginate($this->Articles->find());
        $this->set(compact('articles'));
    }

CMSチュートリアルに則って追記する
次はルーティングを設定する

routes.php
$builder->connect('/', ['controller' => 'Articles', 'action' => 'index']);
// トップページを変える

$builder->fallbacks();
// 今回はこいつがいるため特に追加する必要はない

場合によって追記したりしなかったりする
viewはsrc/tempates/Articles/index.phpに記載する
これもとりあえずチュートリアルの内容を丸ごと貼っつける


topページがっぽい奴になる

このままだとindexページがあるだけで内容は確認できないからviewメソッドを作成する
と言ってもチュートリアルをそのまま持ってくるだけだが

// src/Controller/ArticlesController.php

public function view($slug = null)
{
    $article = $this->Articles->findBySlug($slug)->firstOrFail();
    $this->set(compact('article'));
}

index.phpと同じ場所にview.phpを作る

中身を見られるようになる

こっからアレコレ機能を追加していく

Discussion