Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
CakePHP-关系问题-帖子。子项属于用户,如何定义?_Cakephp_Children_Belongs To_Posts - Fatal编程技术网

CakePHP-关系问题-帖子。子项属于用户,如何定义?

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]

下面是一个posts模型,正如您所看到的,我在每个post上都有一个belongsTo关系,因此用户详细信息也会随post一起检索。 我也希望Posts.Children的行为完全相同(见下面的hasMany定义)

问题:

如何将belongsTo关系应用于Posts.Children(Posts.Child belongsTo User)

“如果在posts控制器中调用debug($this->Post->Child),输出是什么?” 这是:

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
关系是uses
Children
,但在问题中,您说的是
Posts.Children
——您是否正确设置了屈折变化


编辑:我可能误解了这个问题:如果你想要一个有很多关系的人,你已经有了。问题要么在于检索数据的方式,要么在于关系定义。

您将其放在
子项
模型中

var $belongsTo = array( 'Post' );
顺便说一下,您发布的是模型,而不是控制器。希望这只是一个打字错误,你把它放在了正确的地方

还不清楚你是称这个模型为“孩子”还是“孩子”。
$hasMany
关系是uses
Children
,但在问题中,您说的是
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' );