0

我有表“帖子”和“用户”:

CREATE TABLE `posts` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(255) default NULL,
`date` datetime default NULL,
`content` text,
`user_id` int(11) default NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(100) default NULL,
`email` varchar(150) default NULL,
`firstname` varchar(60) default NULL,
`lastname` varchar(60) default NULL,
PRIMARY KEY (`id`)
);

和模型类:

<?php
 class Post extends AppModel {
var $name = 'Post';
 var $belongsTo = array(
'User'=>array(

            'className'=>'User',
            'foreignKey'=>'user_id',
            'conditions'=>null,
            'fields'=>null)
 );
 }
 ?>

<?php
class User extends AppModel {
 var $name = 'User';
 var $hasMany = array('Post');

 }
?>

我正在使用 var $scaffold 进行测试。但是,在我添加一些用户后,我只能在添加帖子页面中看到一个空的选择菜单,这意味着关联不起作用。我不知道我的代码有什么问题。请帮帮我。非常感谢!

4

2 回答 2

0
See the below url:-

http://book.cakephp.org/1.3/view/1042/belongsTo
http://book.cakephp.org/1.3/view/1043/hasMany


//Try This for belongsTo :--


<?php
class Profile extends AppModel {
    var $name = 'Profile';

    var $belongsTo = array(
        'User' => array(
                    'className' => 'User',
                    'foreignKey' => 'user_id'
                )
        );
    }
?>

Or

<?php
class Profile extends AppModel {
    var $name = 'Profile';

    var $belongsTo = array('User');
    }
?>


//For hasmany

<?php
    class User extends AppModel {
        var $name = 'User';
        var $hasMany = array(
            'Post' => array(
            'className' => 'Post',
            'foreignKey' => 'user_id',
            'conditions' => array('Comment.status' => '1'),
            'order' => 'Comment.created DESC',
            'limit' => '5',
            'dependent'=> true
        )
    );
}
?>
于 2012-07-27T04:13:55.960 回答
0

我也是从 cakePHP 开始的,并且在我意识到“约定”要求模型文件名是 CamelCased 之前撞了一段时间。尝试使用:

Post.php
User.php

否则,模型似乎完全被忽略了。

于 2013-02-03T00:28:16.810 回答