0

私のスキーマは非常に単純です。各ユーザーには ID と名前があります。ユーザーに属するジョブがあります。実際のスキーマ -

CREATE TABLE `users` (
   id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,  
  `name` varchar(20) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `jobs` (
   id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `user_id` INT UNSIGNED ,
  `type` int,  
  FOREIGN KEY (user_id) references  users(id) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

私のJobsControllerは次のようになります-

<?php
class JobsController extends AppController {
    public $scaffold;
    public $name = 'Job';

    public $belongsTo = array(
        'User' => array(
            'className'    => 'User',
            'foreignKey'   => 'user_id'
        )
    );

}

そしてUsersController as-

<?php
class UsersController extends AppController {
    public $scaffold;
    public $name = 'User';


    public $hasMany = array(
        'Job' => array(
            'className'     => 'Job',
            'foreignKey'    => 'user_id'
        )
    );
}

問題:

訪問するhttp://hostname/Jobs/addと、ユーザーのドロップダウンが表示されますが、空です。私が見ることができるいくつかのユーザーを作成しましたhttp://hostname/Users/

ドロップダウンが空なのはなぜですか? ジョブを追加できますが、ジョブを表示すると、ユーザー フィールドが空で表示されます。

4

1 に答える 1

4

アソシエーションは、コントローラではなくModelに属します。

app /Model/User.php 内:

class User extends AppModel {
    public $name = 'User';
    public $hasMany = array('Job');
}

app/Model/Job.php

class Job extends AppModel {
    public $name = 'Job';
    public $belongsTo = array('User');
}
于 2012-07-01T22:30:54.463 に答える