gpt4 book ai didi

php - CakePHP 无法链接模型中 2 个表中的数据

转载 作者:行者123 更新时间:2023-11-30 00:10:03 24 4
gpt4 key购买 nike

我在使用 cakePHP 的聊天 View 中链接用户表中的名字等数据时遇到问题。下面是我的代码,无论我做什么,脚本都不会从聊天数据库表中选择 user_id 来显示名字。我一定是在监督某些事情,但我正在思考的循环让我有些头疼。有人可以帮我摆脱这个循环吗?

用户.php

<?php
class User extends AppModel {
public $hasMany = array(
'Ondutylog',
'Chat'
);
}
?>

聊天.php

<?php
class Chat extends AppModel {
public $belongsTo = array(
'User'
);
}
?>

ChatsController.php

<?php
class ChatsController extends AppController {
var $uses = array('User', 'Chat');
public function view() {
$chats = $this->Chat->find('all', array(
'order' => array('id' => 'ASC'),
'recursive' => -1
));
$this->set('chats', $chats);
$id = $chats['Chat']['user_id'];
$userdetails = $this->Chat->User->find('first', array(
'conditions' => array(
'id' => $id
),
recursive' => -1
));
return $userdetails;
}
}
?>

查看.ctp

<?php 
foreach($chats as $chat) :
echo "<tr>";
echo "<td>".$userdetails['User']['firstname']."</td>";
echo "<td>".$chat['Chat']['user_id']."</td>";
echo "<td>".$chat['Chat']['text']."</td>";
echo "<td>".$chat['Chat']['created']."</td>";
echo "</tr>";
endforeach
?>

我在 $chats 中返回的数组

[Chat] => Array
(
[id] => 1
[user_id] => 11
[text] => hello
[created] => 2014-05-21 19:56:16
[modified] => 2014-05-21 19:56:16
)

最佳答案

改变

return $userdetails;

$this->set(compact('userDetails'));

您应该设置 View 变量而不返回信息。

为什么要对其进行单独的查询,而不是仅使用 'recursive' => 0 ,这将通过表连接获取关联的用户记录,并且您可以只使用 $chat ['User']['firstname'] 在 View 中。

同时删除 var $uses = array('User', 'Chat');。不需要。 $this->Chat 已经可用,并且可以通过关联作为 $this->Chat->User 访问用户模型,就像您已经完成的那样。

关于php - CakePHP 无法链接模型中 2 个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24142755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com