2012-07-26 134 views
0

我有表“岗位”和“用户”:CakePHP的模型关联不工作

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'); 

} 
?> 

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

+0

尝试更改为'var $ belongsTo = array('User');'因为遵循约定,所以不需要定义这些额外的键,所以让我们从等式中消除它们。 – tigrang 2012-07-26 23:52:29

+0

我试过使用var $ belongsTo = array('User');但仍然无法工作。 – user1556066 2012-07-27 14:09:40

回答

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 
     ) 
    ); 
} 
?> 
+0

@savedario你救了我,谢谢。在共享Web服务器模型的情况下,骆驼案例非常重要。再次感谢。 – Chandrachur 2015-10-09 17:22:15

0

我开始使用CakePHP太猛磕我的头前一段时间我意识到“公约”规定的型号名被驼峰格式。 尝试使用:

Post.php 
User.php 

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