3

CakePHPでトーナメントプラットフォームを作成しています。現在、私は完全に機能する次のテーブル、モデル、およびコントローラーを作成しました:トーナメント、ユーザー、およびチーム。

「Tournamentuser」テーブル、コントローラー、モデルも作成しました。ここには、tournament_id、user_id、team_idが格納されています。

次に、トーナメントでView.ctpを使用すると、トーナメントユーザーに関連するUser.UsernameとTeam.Usernameが表示されます。今のところ、私はを介してテーブルからIDを取得することしかできませんでした。foreach(.. as ..)。CakePHPクエリでデータを取得していることがわかりますが、印刷方法がわかりません。

4

2 に答える 2

1

あなたはすでにこれを知っていると思いますが、CakePHP の規則は次のとおりです。

  • モデルの名前は単数形にする必要があります: user/car/image
  • コントローラーには複数形の名前が必要です: users/cars/images
  • テーブルには複数形の名前が必要です: users/cars/images

たとえば、「トーナメント ユーザー」というリレーションが必要な場合は、規則に従う必要があります (CakePHP 2+ の場合):

  • コントローラー: TournamentsUsersController.php
  • モデル: TournamentsUser.php
  • テーブル: トーナメント_ユーザー

上記のすべての慣例に従っている場合、関係を作成する前に、トーナメントとユーザーは 2 つのテーブル間の関係を定義する必要があります。

これを行う方法の詳細については、http: //book.cakephp.org/2.0/en/models/associations-linking-models-together.htmlを参照してください。

この時点までにすべてが正しく行われていれば、TournamentsUser モデルにクエリを実行できます。

TournamentsUsersController.php コントローラーにいると仮定します。

$data = $this->TournamentsUser->find('all');

次を使用して、 $data の内容を確認できます。

debug($data);

データを印刷するには、for/foreach ループのいずれかを使用できます。

$size = count($data);
for($i=0; $i<$size; ++i) {
   debug($data[$i]);
}
于 2012-09-07T14:14:24.647 に答える
0

データを取得していて、値にアクセスする必要がある場合は、通常の PHP 配列機能を使用できます。

echo $myData['User']['username'];
echo $myData['Team']['username'];

または、複数ある場合:

foreach($myData as $data) {
    echo $data['User']['username'];
    echo $data['Team']['username'];
}

明らかに、これはコードごとに微調整する必要がありますが、アイデアを得るのに役立つはずです。

于 2012-09-07T14:01:32.987 に答える