cakephp协会混乱
-
27-09-2019 - |
题
我是CakePHP的新手,并且一直在撰写Apress书《从新手到专业人士》中,但在烘焙章节后遇到了问题。
(如果您已经看过我最近的其他问题,您会知道我必须跳过该章,因为我无法在Win7机器上使用烘焙控制台)。
问题在于,我认为桌子协会不再正常工作,即使他们在书籍开头开始Blog应用程序示例时。
博客示例具有以下表:
Users
Posts
用户模型:$ hasmany = array('post');邮政模型:$ allate = array('user');
我目前正在使用脚手架来测试所有内容,但是有一些自定义视图和posts_controller的自定义add()操作。
问题在于,当我为posts_controller使用add()操作时,用户表(从用户表)的ID字段不会放入邮局表的User_id外键字段中。因此,当我显示帖子时,视图的“作者”部分是空白的,因为找不到ID。如果我使用 debug($posts)
然后,返回的数组没有每个帖子的user_id信息,因此“用户”数组中没有信息。
我认为User_id是添加CakePHP表之间的关联的常规方式,但似乎无法正常工作。
有什么想法我需要做什么?
非常感谢
Infiniti Fizz
PS对不起,如果我让您遇到Cakephp问题,大家。
pps
几乎忘记了,我的帖子的add.ctp视图如下如下:
<div class="posts form">
<?=$form->create('Post');?>
<fieldset>
<legend>Add Post</legend>
<?
e($form->input('name'));
e($form->input('date'));
e($form->input('content'));
e($form->input('User'));
?>
</fieldset>
<?=$form->end('Submit');?>
</div>
<div class="actions">
<ul>
<li><?=$html->link(__('List Posts', true),array('action'=>'index'));?></li>
<li><?=$html->link(__('List Users', true),array('controller','users', 'action'=>'index'));?></li>
<li><?=$html->link(__('New User', true),array('controller'=>'users', 'action'=>'add'));?></li>
</ul>
</div>
以及posts_controller.php中的add()操作:
function add()
{
if(!empty($this->data))
{
$this->Post->create();
if($this->Post->save($this->data))
{
$this->Session->setFlash('The Post has been saved', true);
$this->redirect(array('action' => 'index'));
}
else
{
$this->Session->setFlash('The Post could not be saved. Please try again.', true);
}
}
$users = $this->Post->User->find('list');
$this->set(compact('users'));
}
解决方案
我也是蛋糕的新手,但据我所知,我认为您应该在add.ctp中更改它:
$form->input('User')
对此
$form->input('user_id')
FormHelper小心将输入显示为下拉列表(基于Hasmany-Belongsto参考)。
不隶属于 StackOverflow