2012-07-26 131 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 

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