CakePHP-关系问题-帖子。子项属于用户,如何定义?
下面是一个posts模型,正如您所看到的,我在每个post上都有一个belongsTo关系,因此用户详细信息也会随post一起检索。 我也希望Posts.Children的行为完全相同(见下面的hasMany定义) 问题: 如何将belongsTo关系应用于Posts.Children(Posts.Child belongsTo User) “如果在posts控制器中调用debug($this->Post->Child),输出是什么?” 这是:CakePHP-关系问题-帖子。子项属于用户,如何定义?,cakephp,children,belongs-to,posts,Cakephp,Children,Belongs To,Posts,下面是一个posts模型,正如您所看到的,我在每个post上都有一个belongsTo关系,因此用户详细信息也会随post一起检索。 我也希望Posts.Children的行为完全相同(见下面的hasMany定义) 问题: 如何将belongsTo关系应用于Posts.Children(Posts.Child belongsTo User) “如果在posts控制器中调用debug($this->Post->Child),输出是什么?” 这是: Post Object ( [name]
Post Object
(
[name] => Post
[hasMany] => Array
(
[Child] => Array
(
[className] => Post
[foreignKey] => parent_id
[conditions] => Array
(
[Child.active] => 1
)
[fields] =>
[order] =>
[limit] =>
[offset] =>
[dependent] =>
[exclusive] =>
[finderQuery] =>
[counterQuery] =>
)
)
[belongsTo] => Array
(
[User] => Array
(
[className] => User
[foreignKey] => dom
[fields] => Array
(
[0] => User.id
[1] => User.first_name
[2] => User.last_name
)
[conditions] =>
[order] =>
[counterCache] =>
)
)
[useDbConfig] => default
[useTable] => posts
[displayField] => title
[id] =>
[data] => Array
(
)
[table] => posts
[primaryKey] => id
[_schema] => Array
(
[active] => Array
(
[type] => integer
[null] =>
[default] => 1
[length] => 1
)
[id] => Array
(
[type] => integer
[null] =>
[default] =>
[length] => 11
[key] => primary
)
[parent_id] => Array
(
[type] => integer
[null] =>
[default] => 0
[length] => 11
)
[time] => Array
(
[type] => integer
[null] =>
[default] => 0
[length] => 11
)
[dom] => Array
(
[type] => integer
[null] =>
[default] =>
[length] => 11
)
[sub] => Array
(
[type] => integer
[null] =>
[default] =>
[length] => 11
)
[created] => Array
(
[type] => datetime
[null] =>
[default] =>
[length] =>
)
[modified] => Array
(
[type] => datetime
[null] =>
[default] =>
[length] =>
)
[text] => Array
(
[type] => string
[null] =>
[default] =>
[length] => 4096
[collate] => latin1_swedish_ci
[charset] => latin1
)
)
[validate] => Array
(
)
[validationErrors] => Array
(
)
[tablePrefix] =>
[alias] => Child
[tableToModel] => Array
(
[posts] => Child
[users] => User
)
[logTransactions] =>
[cacheQueries] =>
[hasOne] => Array
(
)
[hasAndBelongsToMany] => Array
(
)
[actsAs] =>
[Behaviors] => BehaviorCollection Object
(
[modelName] => Child
[_attached] => Array
(
)
[_disabled] => Array
(
)
[__methods] => Array
(
)
[__mappedMethods] => Array
(
)
)
[whitelist] => Array
(
)
[cacheSources] => 1
[findQueryType] =>
[recursive] => 1
[order] =>
[virtualFields] => Array
(
)
[__associationKeys] => Array
(
[belongsTo] => Array
(
[0] => className
[1] => foreignKey
[2] => conditions
[3] => fields
[4] => order
[5] => counterCache
)
[hasOne] => Array
(
[0] => className
[1] => foreignKey
[2] => conditions
[3] => fields
[4] => order
[5] => dependent
)
[hasMany] => Array
(
[0] => className
[1] => foreignKey
[2] => conditions
[3] => fields
[4] => order
[5] => limit
[6] => offset
[7] => dependent
[8] => exclusive
[9] => finderQuery
[10] => counterQuery
)
[hasAndBelongsToMany] => Array
(
[0] => className
[1] => joinTable
[2] => with
[3] => foreignKey
[4] => associationForeignKey
[5] => conditions
[6] => fields
[7] => order
[8] => limit
[9] => offset
[10] => unique
[11] => finderQuery
[12] => deleteQuery
[13] => insertQuery
)
)
[__associations] => Array
(
[0] => belongsTo
[1] => hasOne
[2] => hasMany
[3] => hasAndBelongsToMany
)
[__backAssociation] => Array
(
)
[__insertID] =>
[__numRows] =>
[__affectedRows] =>
[_findMethods] => Array
(
[all] => 1
[first] => 1
[count] => 1
[neighbors] => 1
[list] => 1
[threaded] => 1
)
[User] => User Object
(
[name] => User
[validate] => Array
(
[name] => Array
(
[rule] => Array
(
[0] => minLength
[1] => 4
)
[message] => Name has to be at least four characters
)
[email] => Array
(
[rule] => Array
(
[0] => email
)
[message] => Please enter a valid email
)
[username] => Array
(
[Username has to be at least four characters] => Array
(
[rule] => Array
(
[0] => minLength
[1] => 4
)
)
[This username is already taken, please try another] => Array
(
[rule] => isUnique
)
)
[password] => Array
(
[Password cannot be empty] => Array
(
[rule] => Array
(
[0] => notEmpty
)
)
[Password must be at least four characters] => Array
(
[rule] => Array
(
[0] => minLength
[1] => 4
)
)
[Passwords must match] => Array
(
[rule] => Array
(
[0] => passwordCompare
[1] => password_confirm
)
)
)
)
[useDbConfig] => default
[useTable] => users
[displayField] => id
[id] =>
[data] => Array
(
)
[table] => users
[primaryKey] => id
[_schema] => Array
(
[id] => Array
(
[type] => integer
[null] =>
[default] =>
[length] => 11
[key] => primary
)
[type] => Array
(
[type] => boolean
[null] =>
[default] => 1
[length] => 1
)
[is_active] => Array
(
[type] => boolean
[null] =>
[default] => 1
[length] => 1
)
[gender] => Array
(
[type] => boolean
[null] =>
[default] => 1
[length] => 1
)
[first_name] => Array
(
[type] => string
[null] =>
[default] =>
[length] => 200
[collate] => latin1_swedish_ci
[charset] => latin1
)
[last_name] => Array
(
[type] => string
[null] =>
[default] =>
[length] => 200
[collate] => latin1_swedish_ci
[charset] => latin1
)
[email] => Array
(
[type] => string
[null] =>
[default] =>
[length] => 200
[collate] => latin1_swedish_ci
[charset] => latin1
)
[username] => Array
(
[type] => string
[null] =>
[default] =>
[length] => 200
[collate] => latin1_swedish_ci
[charset] => latin1
)
[password] => Array
(
[type] => string
[null] =>
[default] =>
[length] => 200
[collate] => latin1_swedish_ci
[charset] => latin1
)
[created] => Array
(
[type] => datetime
[null] =>
[default] =>
[length] =>
)
[modified] => Array
(
[type] => datetime
[null] =>
[default] =>
[length] =>
)
[bio] => Array
(
[type] => string
[null] =>
[default] =>
[length] => 2048
[collate] => latin1_swedish_ci
[charset] => latin1
)
)
[validationErrors] => Array
(
)
[tablePrefix] =>
[alias] => User
[tableToModel] => Array
(
[users] => User
)
[logTransactions] =>
[cacheQueries] =>
[belongsTo] => Array
(
)
[hasOne] => Array
(
)
[hasMany] => Array
(
)
[hasAndBelongsToMany] => Array
(
)
[actsAs] =>
[Behaviors] => BehaviorCollection Object
(
[modelName] => User
[_attached] => Array
(
)
[_disabled] => Array
(
)
[__methods] => Array
(
)
[__mappedMethods] => Array
(
)
)
[whitelist] => Array
(
)
[cacheSources] => 1
[findQueryType] =>
[recursive] => 1
[order] =>
[virtualFields] => Array
(
)
[__associationKeys] => Array
(
[belongsTo] => Array
(
[0] => className
[1] => foreignKey
[2] => conditions
[3] => fields
[4] => order
[5] => counterCache
)
[hasOne] => Array
(
[0] => className
[1] => foreignKey
[2] => conditions
[3] => fields
[4] => order
[5] => dependent
)
[hasMany] => Array
(
[0] => className
[1] => foreignKey
[2] => conditions
[3] => fields
[4] => order
[5] => limit
[6] => offset
[7] => dependent
[8] => exclusive
[9] => finderQuery
[10] => counterQuery
)
[hasAndBelongsToMany] => Array
(
[0] => className
[1] => joinTable
[2] => with
[3] => foreignKey
[4] => associationForeignKey
[5] => conditions
[6] => fields
[7] => order
[8] => limit
[9] => offset
[10] => unique
[11] => finderQuery
[12] => deleteQuery
[13] => insertQuery
)
)
[__associations] => Array
(
[0] => belongsTo
[1] => hasOne
[2] => hasMany
[3] => hasAndBelongsToMany
)
[__backAssociation] => Array
(
)
[__insertID] =>
[__numRows] =>
[__affectedRows] =>
[_findMethods] => Array
(
[all] => 1
[first] => 1
[count] => 1
[neighbors] => 1
[list] => 1
[threaded] => 1
)
)
[Child] => Post Object
*RECURSION*
)
您将其放在
子对象模型中
var $belongsTo = array( 'Post' );
顺便说一下,您发布的是模型,而不是控制器。希望这只是一个打字错误,你把它放在了正确的地方
还不清楚你是称这个模型为“孩子”还是“孩子”。$hasMany
关系是usesChildren
,但在问题中,您说的是Posts.Children
——您是否正确设置了屈折变化
编辑:我可能误解了这个问题:如果你想要一个有很多关系的人,你已经有了。问题要么在于检索数据的方式,要么在于关系定义。您将其放在子项
模型中
var $belongsTo = array( 'Post' );
顺便说一下,您发布的是模型,而不是控制器。希望这只是一个打字错误,你把它放在了正确的地方
还不清楚你是称这个模型为“孩子”还是“孩子”。$hasMany
关系是usesChildren
,但在问题中,您说的是Posts.Children
——您是否正确设置了屈折变化
编辑:我可能误解了这个问题:如果你想要一个有很多关系的人,你已经有了。问题要么在于检索数据的方式,要么在于关系定义。您不必做任何事情,子项也是帖子,因此也属于用户。(你应该给它取名为“Child”而不是“Children”)
使用containable,尝试以下操作:$this->Post->find('all',array('contain'=>array('Child'=>array('User')))代码>你不必做任何事情,孩子也是帖子,所以也属于用户。(你应该给它取名为“Child”而不是“Children”)
使用containable,尝试以下操作:$this->Post->find('all',array('contain'=>array('Child'=>array('User')))代码>以上是Post模型。我没有任何其他与帖子相关的模型,我是否应该为孩子们提供另一个单独的模型?如果你想让孩子们属于帖子关系,那么是的,你需要孩子们模型。(你说的“没有任何其他与帖子相关的模型”是什么意思?你有与用户模型相关的模型,对吗?)我目前有一个用户模型和一个帖子模型。上面是Post模型,到目前为止,用户模型中没有提到Post模型。我只想能够从“app/views/posts/index.ctpAbove”中访问User.first_name和User.last_name。我没有任何其他与帖子相关的模型,我是否应该为孩子们提供另一个单独的模型?如果你想让孩子们属于帖子关系,那么是的,你需要孩子们模型。(你说的“没有任何其他与帖子相关的模型”是什么意思?你有与用户模型相关的模型,对吗?)我目前有一个用户模型和一个帖子模型。帖子模型在上面,并且到目前为止用户模型中没有提到帖子模型。我只想能够从内部访问User.first_name和User.last_name”app/views/posts/index.ctpOk,谢谢。但是DEBUG()仍然只显示帖子的用户数据,而不是每个帖子的子帖子的数据。??对此表示抱歉;)子帖子似乎不被视为帖子。谢谢你的帮助;)我看到您的子对象中有一个用户对象。只需确保数据库中启用了containable和一些正确的数据。好的,谢谢。但是DEBUG()仍然只是显示帖子的用户数据,而不是每个帖子的子项。??很抱歉;)孩子似乎不被视为一个职位。谢谢你的帮助;)我看到您的子对象中有一个用户对象。只需确保数据库中已启用containable和一些正确的数据。我仍在这里寻找建议。->如何让每篇文章和每篇文章的每个子项显示用户信息?每个帖子和每个子帖子都有一个“所有者”字段,我需要在视图中显示该元素中每个帖子/子帖子的名字和姓氏。谢谢,我还在这里寻找建议,伙计们。->如何让每篇文章和每篇文章的每个子项显示用户信息?每个帖子和每个子帖子都有一个“所有者”字段,我需要在视图中显示该元素中每个帖子/子帖子的名字和姓氏。谢谢
var $belongsTo = array( 'Post' );