3

我正在使用 CakePHP 创建一个锦标赛平台。目前,我创建了以下表格、模型和控制器,它们可以完美运行:锦标赛、用户和团队。

我还创建了一个“Tournamentuser”表、控制器和模型,其中存储了锦标赛 ID、用户 ID 和团队 ID。

然后,当在 Tournaments 下使用 View.ctp 时,它应该显示与 Tournamentuser 相关的 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
  • 表:锦标赛_用户

如果在建立关系之前遵循所有上述约定,则锦标赛用户必须定义​​两个表之间的关系。

在这里您可以找到有关如何执行此操作的更多详细信息: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 回答