【CakePHP3】無関係な複数テーブルのデータを一つのコントローラで扱う

公開日: : CakePHP, PHP

スポンサーリンク

CakePHP3で一つのコントローラないでお互い独立したテーブルを扱うには単純にTableRegistry::getするだけです。
下記サンプルはbakeした際に自動生成されるコードをベースに作成しました。useに「use Cake\ORM\TableRegistry;」を追加すると上記のTableRegistryが使用できるようになります。

自動生成されるコントローラをベースにすると

1.use Cake\ORM\TableRegistry;を追加
2.TableRegistry::getでテーブルをインスタンス化(例ではinitialize内で2つのテーブルを生成)
3.ビューに渡す(例ではindexアクション内)
(ビュー内で両者を表示)

コントローラ例

<?php
namespace App\Controller;

use App\Controller\AppController;
use Cake\ORM\TableRegistry;     //これを追記

class TestDatasController extends AppController
{
     public function initialize()
     {
         parent::initialize();
         $this->testdatas = TableRegistry::get('testdatasのテーブル名');
         $this->sampledatas = TableRegistry::get('sampledatasのテーブル名');
    }
    public function index()
    {
          //10件のみ表示
        $this->set('tests', $this->testdatas->find()->limit(10));
        $this->set('samples', $this->sampledatas->find()->limit(10));
    }
}
?>

index.ctp例

<h3>Test Index</h3>
<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Date</th>
            <th>Data</th>
        </tr>
    </thead>
    <tbody>
    <?php foreach ($datas as $data): ?>
        <tr>
             <td><?= h($data->id) ?></td>
            <td><?= h($data->date) ?></td>
            <td><?= h($data->data) ?></td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
「データベースアクセス & ORM (Cookbook 3.x)」
http://book.cakephp.org/3.0/ja/orm.html
「cake / waferboard」
http://www.igosso.net/flk/8999371750.html
スポンサーリンク
Amazon
  • このエントリーをはてなブックマークに追加

関連記事

branch-67844_640

【TwitterOauth】特定のつぶやきを取得してリツイート数順やランダム順にする【PHP】

TwitterOauthを利用して特定のワードをつぶやいたデータを取得してそれをリツイート順なりに並

記事を読む

rssimage

【PHP】特定のURLからそのAtomやRSSのフィードを抽出する方法

特定のURLからRSSやATOMのフィードを抽出する方法をメモ。 流れとしては指定のWebページH

記事を読む

source_php

PHPでページリロードをしようと思ったができなかったので

header("Location: ".$_SERVER); とすればページをリロードでき

記事を読む

source_php

【PHP】クラスの配列をソートする

クラスのメンバに応じて配列をusortでソートします。クラス内の関数でソートする場合は下のようにする

記事を読む

Youtube-Image

YoutubeのURLリンクを外部プレイヤーのものに正規表現で置換する

Youtubeのアドレスを正規表現を使って抽出して外部プレイヤーのフレームに変換・置換するスクリプト

記事を読む

nc23924

ニコニコ動画のURLリンクから外部プレイヤーのスクリプトに正規表現で置換する

ニコニコ動画の動画のアドレスを抽出して外部プレイヤー貼りつけソースのスクリプトに変換するソースです。

記事を読む

no image

【PEAR】Services_AmazonのItemLookupで複数ASINを指定する

Amazon Product Advertising APIをPEARのServices_Amazo

記事を読む

PAK86_atamakakaerujyosei20140125500-thumb-500xauto-4730

【MySQL・PHP】WHERE句とORDER BY句を使った#1064エラーについて

MySQLで次のようなクエリを出すとエラーとなって帰ってきました。 SELECT * from

記事を読む

api

【PHP】WebAPIのJSONファイルを読み込む

WebAPIでJSONファイルを使う機会があったので使い方をメモ。最近ではWebAPIはSNSやブロ

記事を読む

twitterimage

TwitterAPIでデベロッパー登録しようとすると携帯情報を追加しろと出る件について

TwitterAPIのデベロッパー登録ページ(https://dev.twitter.com)でアプ

記事を読む

encodingtype
【PHP】headerでContent-Typeを指定したのに効かない場合の対処法

PHPでサイトマップを作ろうと思い、XML形式のファイルを出力しようと

_rtm0919_tp_v
スマホ向け幅固定サイトの回転時の幅対応方法

幅固定サイトでのスマホ回転時Webサイトの横幅を合わせる方法のメモ。

rssimage
【PHP】特定のURLからそのAtomやRSSのフィードを抽出する方法

特定のURLからRSSやATOMのフィードを抽出する方法をメモ。 流

rssimage
フィード抽出ツール(RSS1.0、RSS2.0、atom)

任意URL サイト名 サイトURL RSS1.0

computer_server
格安プラン限定レンタルサーバー機能比較表(2016年)

はじめに  最近新しい共用サーバーをレンタルしようと思い調査およびそ

school_toshokan_hondana
kindle unlimitedが便利だったのでお勧めの使い方など感想メモ

 kindle unlimitedというサービスが8/3からAmazo

TAKEBE055122558_TP_V
寝る前にスマホを見ると斜視になる可能性とその対策

はじめに  寝る前などスマホを横になりながら見続けると斜視になる可能

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑