環境:MAMP
MySQL:5.7.26
PHP:7.3.9
cakephp:4.0.4
環境構築から一緒に揃えたい方はこっちを参考にしてみてください。
>>MAMP環境下でcomposerを使ってcakephpを導入する手順
Controller追加
<?php namespace App\Controller; class ArticlesController extends AppController { public function index() { $this->loadComponent('Paginator'); $articles = $this->Paginator->paginate($this->Articles->find()); $this->set(compact('articles')); } }
上記の内容で src/Controller/ArticlesController.phpとなるようにArticlesController.phpを追加。
compactに関してはこちらを参考に理解してください。
$arr = array( 'apple' => $apple, 'orange' => $orange, 'lemon' => $lemon, ); // ↑ // 同じ意味 // ↓ $arr = compact('apple', 'orange', 'lemon');
Viewを追加
<h1>記事一覧</h1> <table> <tr> <th>タイトル</th> <th>作成日時</th> </tr> <!-- ここで、$articles クエリーオブジェクトを繰り返して、記事の情報を出力します --> <?php foreach ($articles as $article): ?> <tr> <td> <?= $this->Html->link($article->title, ['action' => 'view', $article->slug]) ?> </td> <td> <?= $article->created->format(DATE_RFC850) ?> </td> </tr> <?php endforeach; ?> </table>
公式にはsrc/Template/Articles/index.ctpとなるようにと書いてあるけどうまくいきません。
src/templates/Articles/index.phpでうまくいきます。
ファイルを追加したらhttp://localhost:8888/articles/indexにアクセスしましょう。
階層的にはこうなっています。