外部キーCakePHPを使用して別のテーブルのデータを表示するにはどうすればよいですか?

レオナルド・フレイタス

私は次の表を持っています:

  1. ユーザー:id、name、..。
  2. コース:id、name、knowledge_area_id、educational_institution_id、..。
  3. users_courses:user_id、course_id、..。
  4. Knowledge_areas:id、name
  5. Educational_institutions:id、name、..。

私は現在、ユーザーのビューに、関連するすべてのコースを含む、そのユーザーに関するいくつかの情報を表示しようとしています。これが私が現在していることです:

オン/Template/Users/view.ctp

<?php foreach($user->courses as $courses): ?>
    <?= h($courses->name) ?>
    <?= h($courses->knowledge_area_id) ?>
    <?= h($courses->educational_institution_id ?>
    <?= h($courses->description) ?>
<?php endforeach; ?>

これにより、ユーザーが関連付けられているすべてのコースが、その名前、ナレッジエリアID、教育機関ID、およびコースの説明とともに表示されます。ただし、IDの代わりに、知識領域の名前と教育機関の名前を表示したいと思います。私はやってみました$courses->knowledge_area->namename、非オブジェクトからプロパティ取得しようとしていると表示されます

私が試してみると、debug($courses)次のようになります。

object(App\Model\Entity\Course) {

    'id' => (int) 2,
    'name' => 'course name',
    'knowledge_area_id' => (int) 1,
    'educational_institution_id' => (int) 1,
    'description' => 'course description',
    '_joinData' => object(Cake\ORM\Entity) {
    ...
}

実際に私が取得する必要があるとき

object(App\Model\Entity\Course) {

    'id' => (int) 2,
    'name' => 'course name',
    'knowledge_area_id' => (int) 1,
    'educational_institution_id' => (int) 1,
    'description' => 'course description',
    'educational_institution' => object(App\Model\Entity\EducationalInstitution) {

        'id' => (int) 1,
        'address_id' => (int) 1,
        'name' => 'ed institution name',
        '[new]' => false,
        '[accessible]' => [
            'address_id' => true,
            'name' => true,
            'address' => true,
            'courses' => true,
            'users' => true
        ],
        '[dirty]' => [],
        '[original]' => [],
        '[virtual]' => [],
        '[errors]' => [],
        '[invalid]' => [],
        '[repository]' => 'EducationalInstitutions'

    },
    'knowledge_area' => object(App\Model\Entity\KnowledgeArea) {

        'id' => (int) 1,
        'name' => 'knowledge area name',
        '[new]' => false,
        '[accessible]' => [
            'name' => true,
            'courses' => true
        ],
        '[dirty]' => [],
        '[original]' => [],
        '[virtual]' => [],
        '[errors]' => [],
        '[invalid]' => [],
        '[repository]' => 'KnowledgeAreas'

    },
...
}

そうすれば$courses->knowledge_area->name、基本的に/Template/Courses/view.ctpはで起こることであるを使用することができ、各コースについて、それがどの知識領域に関連しているかを示すことができます。

私はケーキの規則に従ってい/Model/Table/..て、コントローラーとコントローラー上のすべてが正しいと想定しているファイルを再確認したので、これを修正するために何ができるかについてのアイデアはありますか?

レオナルド・フレイタス

メアリーのコメントの助けを借りて、私は自分のために働くわずかに異なる解決策を見つけることができました。

ユーザービューを編集しようとしていたので、ユーザーコントローラーのビュー機能に入り、変更しました

$user = $this->Users->get($id, [ 'contain' => ['Addresses', 'AccessLevels', 'Courses', 'EducationalInstitutions' ] ]);

$user = $this->Users->get($id, [ 'contain' => ['Addresses', 'AccessLevels', 'Courses', 'EducationalInstitutions', 'Courses.KnowledgeAreas', 'Courses.EducationalInstitutions' ] ]);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MySQL外部キーを使用して別のテーブルの列を識別するにはどうすればよいですか?

分類Dev

ボタンを使用して、あるテーブルから別のテーブルに要素を表示するにはどうすればよいですか?

分類Dev

laravelを使用してデータベースのレコードをデータテーブルに表示するにはどうすればよいですか?

分類Dev

ユーザーの表示データを取得して別のテーブルに挿入するにはどうすればよいですか

分類Dev

Codeigniterで2つの結合テーブルを使用してテーブルにデータを表示するにはどうすればよいですか

分類Dev

Javascriptを使用してフォームデータを別のページのテーブルに保存するにはどうすればよいですか?

分類Dev

別のテーブルの外部キーによって参照されている主キーを取得するにはどうすればよいですか?

分類Dev

外部キー関係なしでlist_displayの別のテーブルの列を表示するにはどうすればよいですか?

分類Dev

別の配列内にある配列からデータを取得してテーブルに表示するにはどうすればよいですか?

分類Dev

Spark SQLを使用してデータベース内のすべてのテーブルを一覧表示するにはどうすればよいですか?

分類Dev

既存のフィールドを別のテーブルへの外部キーとして設定するにはどうすればよいですか?

分類Dev

LaravelのAuthユーザーに基づいて別のテーブルのデータを表示するにはどうすればよいですか?

分類Dev

データベース内のすべてのテーブルをHTMLテーブルとして表示するにはどうすればよいですか?

分類Dev

linqを使用して別のテーブルからIDが一致するデータを注文するにはどうすればよいですか?

分類Dev

postgres dblinkを使用して、別のデータベースのテーブルを更新するにはどうすればよいですか?

分類Dev

外部キー参照を使用してテーブルを作成するにはどうすればよいですか?

分類Dev

MySQLを使用したCGI:テーブルのすべてのデータを表示するにはどうすればよいですか?

分類Dev

外部キーと主キーの概念を使用して2つのテーブルを接続するにはどうすればよいですか?

分類Dev

雄弁でlaravelを使用したネストされたイーガーローディングを使用して、別のテーブルで外部キー名を取得するにはどうすればよいですか?

分類Dev

v-selectリストを使用してvuetifyデータテーブルの非表示列を表示するにはどうすればよいですか?

分類Dev

データが挿入されたときに、外部キーが別のテーブルの主キーとして存在することを確認するにはどうすればよいですか?

分類Dev

どのテーブルが特定の外部キー値を使用しているかを知るにはどうすればよいですか?

分類Dev

テーブルからデータを選択して別のテーブルに挿入するにはどうすればよいですか?

分類Dev

vuetifyデータテーブルを使用して配列のインデックスを表示するにはどうすればよいですか?

分類Dev

1つのテーブルを指す複数の外部キーを使用してクエリを実行するにはどうすればよいですか?

分類Dev

knockoutjsを使用して複数のテーブルのデータを表示するにはどうすればよいですか?

分類Dev

SQL Serverの特定のテーブルを参照するすべての外部キーを一覧表示するにはどうすればよいですか?

分類Dev

別のデータ配列を使用してIDまたは名前でデータの配列をフィルタリングしてReactテーブルに表示するにはどうすればよいですか?

分類Dev

テーブルから*を選択し、列の1つを別のデータ型にキャストするにはどうすればよいですか?

Related 関連記事

  1. 1

    MySQL外部キーを使用して別のテーブルの列を識別するにはどうすればよいですか?

  2. 2

    ボタンを使用して、あるテーブルから別のテーブルに要素を表示するにはどうすればよいですか?

  3. 3

    laravelを使用してデータベースのレコードをデータテーブルに表示するにはどうすればよいですか?

  4. 4

    ユーザーの表示データを取得して別のテーブルに挿入するにはどうすればよいですか

  5. 5

    Codeigniterで2つの結合テーブルを使用してテーブルにデータを表示するにはどうすればよいですか

  6. 6

    Javascriptを使用してフォームデータを別のページのテーブルに保存するにはどうすればよいですか?

  7. 7

    別のテーブルの外部キーによって参照されている主キーを取得するにはどうすればよいですか?

  8. 8

    外部キー関係なしでlist_displayの別のテーブルの列を表示するにはどうすればよいですか?

  9. 9

    別の配列内にある配列からデータを取得してテーブルに表示するにはどうすればよいですか?

  10. 10

    Spark SQLを使用してデータベース内のすべてのテーブルを一覧表示するにはどうすればよいですか?

  11. 11

    既存のフィールドを別のテーブルへの外部キーとして設定するにはどうすればよいですか?

  12. 12

    LaravelのAuthユーザーに基づいて別のテーブルのデータを表示するにはどうすればよいですか?

  13. 13

    データベース内のすべてのテーブルをHTMLテーブルとして表示するにはどうすればよいですか?

  14. 14

    linqを使用して別のテーブルからIDが一致するデータを注文するにはどうすればよいですか?

  15. 15

    postgres dblinkを使用して、別のデータベースのテーブルを更新するにはどうすればよいですか?

  16. 16

    外部キー参照を使用してテーブルを作成するにはどうすればよいですか?

  17. 17

    MySQLを使用したCGI:テーブルのすべてのデータを表示するにはどうすればよいですか?

  18. 18

    外部キーと主キーの概念を使用して2つのテーブルを接続するにはどうすればよいですか?

  19. 19

    雄弁でlaravelを使用したネストされたイーガーローディングを使用して、別のテーブルで外部キー名を取得するにはどうすればよいですか?

  20. 20

    v-selectリストを使用してvuetifyデータテーブルの非表示列を表示するにはどうすればよいですか?

  21. 21

    データが挿入されたときに、外部キーが別のテーブルの主キーとして存在することを確認するにはどうすればよいですか?

  22. 22

    どのテーブルが特定の外部キー値を使用しているかを知るにはどうすればよいですか?

  23. 23

    テーブルからデータを選択して別のテーブルに挿入するにはどうすればよいですか?

  24. 24

    vuetifyデータテーブルを使用して配列のインデックスを表示するにはどうすればよいですか?

  25. 25

    1つのテーブルを指す複数の外部キーを使用してクエリを実行するにはどうすればよいですか?

  26. 26

    knockoutjsを使用して複数のテーブルのデータを表示するにはどうすればよいですか?

  27. 27

    SQL Serverの特定のテーブルを参照するすべての外部キーを一覧表示するにはどうすればよいですか?

  28. 28

    別のデータ配列を使用してIDまたは名前でデータの配列をフィルタリングしてReactテーブルに表示するにはどうすればよいですか?

  29. 29

    テーブルから*を選択し、列の1つを別のデータ型にキャストするにはどうすればよいですか?

ホットタグ

アーカイブ