【发布时间】:2015-11-26 22:26:50
【问题描述】:
该数据库包含以下表格:posts、posts_authors 和 users。
posts table fields: id, name, slug, content, 已创建、修改、user_id(记录创建者,而非作者)和在线。posts_authors table fields:id、post_id 和 user_id。users table fields: id, name, slug, email, 密码、country_id、头像、创建、修改和状态 .
我正在尝试列出每个帖子的所有帖子和所有作者,但我不知道如何在第二个 foreach 循环中从他们的 ID 中获取用户的姓名。
代码:
我的观点
<?php foreach ($posts as $post): ?>
...
<ul>
<?php foreach ($post->authors as $authors): ?>
<li><?= $authors->users[0]->name ?></li>
<?php endforeach; ?>
</ul>
...
<?php endforeach; ?>
PostsAuthorsTable.php(模型)
...
$this->belongsTo('Users');
$this->belongsTo('Posts');
...
PostsTable.php(模型)
...
$this->belongsToMany('Users', [
'through' => 'PostsAuthors',
]);
...
UsersTable.php(模型)
...
$this->belongsToMany('Posts', [
'through' => 'PostsAuthors',
]);
...
PostsController.php(控制器)
public function index()
{
$posts = $this->Posts->find('all', [
'conditions' => ['Posts.online !=' => -1]
])->order(['Posts.publication' => 'DESC'])->contain(['Users']);
$this->set(compact(['posts']));
}
【问题讨论】:
-
好吧,首先:如何在控制器中获取
$posts数组?那么如果 Post belogsToMany 用户应该是$post->user而不是$post->author -
@arilia 感谢您的评论!刚刚在我的问题中添加了
PostsController.php。
标签: php cakephp foreach cakephp-3.0