Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP原则:生成问题?_Php_Doctrine - Fatal编程技术网

PHP原则:生成问题?

PHP原则:生成问题?,php,doctrine,Php,Doctrine,我正在从Mysql数据库生成模型。它正确地生成了一个外键集合,但不是反过来这是“故意的”,还是我做错了什么? 伪代码警报 User: UserId pk LocationId fk //User location Location LocationId pk UserId fk //Location owner 生成的代码: class User() { hasMany('Location') //for locations owned by

我正在从Mysql数据库生成模型。它正确地生成了一个外键集合,但不是反过来这是“故意的”,还是我做错了什么?

伪代码警报

User:
  UserId pk
  LocationId fk     //User location

Location
  LocationId pk
  UserId fk         //Location owner
生成的代码:

class User() {
    hasMany('Location') //for locations owned by the user

    //BUT NOT THIS ONE:
    //hasOne('Location_1') //for current location of user
}

class Location() {
    hasMany('User') //for users which are on that location

    //AND NOT THIS ONE
    //hasOne('User_1') //for location owner
}

您需要定义一个关联表。您的伪代码具有误导性——在多对多关系中,用户或位置类中不使用外键,而是在关联类中使用外键


参见第76页。

否,代码正确。这不需要关联类,它需要一对多关系两次。用户->位置ID会在用户位置更改时更新。插入位置时,会将用户指定为其所有者。对不起,我误解了您的问题。只是一个猜测,但也许你应该明确定义owningSide?我真的错过了一些东西。请纠正我,但是:假设User.LocationId链接到Location.Id的地方有一个外键关系。这意味着条令将生成Location->hasMany('User')。但这难道不意味着还应该生成一个用户->hasOne('Location')吗?我不指望会这样,因为手册上说:“从现有数据库生成只是为了方便开始。从数据库生成后,您必须调整它,并根据需要清理。”