خطأ كاكيفب الاحتواء:جمعية مستويين لا تعمل

StackOverflow https://stackoverflow.com//questions/11667817

  •  12-12-2019
  •  | 
  •  

سؤال

أفعل الاستعلام التالي:

        $this->find('all',array(
            'contain' => array(
                'User' => array('id','facebook_id','name','username','Author' => array('first_name','last_name','code','photo')),
                'Tab.code'
            ),
            'fields' => array('Comment.date','Comment.time','Comment.content'),
            'conditions' => array(
                'Tab.code' => $code
            ),
            'limit' => $limit,
            'offset' => $offset
        ));

تعليق...

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

المستخدم...

    public $hasOne = array('Author' => array('foreignKey' => 'id'));

والمؤلف...

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

هذا يعود شيء من هذا القبيل (في جسون)...

[
    {
        "Comment": {
            "date": "2001-12-15",
            "time": "17:32:12",
            "content": "..."
        },
        "User": {
            "id": "29",
            "facebook_id": "1234",
            "name": "User 29",
            "username": "user29"
        },
        "Tab": {
            "code": "llibre-de-prova-29",
            "id": "229"
        }
    }
    ...
]

...في حين أتوقع أن تعلق على المستخدم يظهر مؤلف مع الحقول التي حددتها.هل تعرف لماذا لا يظهر المؤلف?فعلت أخرى تحتوي على مستويين من العودية على التعليمات البرمجية وجميع الأعمال كما هو متوقع.

شكرا لكم على مساعدتكم والاهتمام!

هل كانت مفيدة؟

المحلول

تأكد من أن النموذج الخاص بك يحتوي على سلوك يمكن إرفاقه.يجب أن تتضمن السطر التالي: giveacodicetagpre.

تولي اهتماما للتأكد من أنك لم تغذف "في أعمال" في "Acts" وهو عبارة عن مطبعي مشترك يصعب تحديده.يمكنك أيضا إرفاق السلوك الاحتيالي على ذبابة مثل هذا: giveacodicetagpre.

تأكد أيضا من الكتابة "تحتوي" ككل مفتاح، وليس "يحتوي".

نصائح أخرى

تحتاج إلى تحديد الحقول في مفتاح 'الحقول'.التعامل معها مثل إضافية find() اتصل.

$this->find('all', array(
            'contain' => array(
                'User' => array(
                    'fields' => array('id','facebook_id','name','username'),
                    'Author' => array(
                        'fields' => array('first_name','last_name','code','photo')
                    ),
                    'Tab.code'
                ),
            ),
            'fields' => array('Comment.date','Comment.time','Comment.content'),
            'conditions' => array(
                'Tab.code' => $code
            ),
            'limit' => $limit,
            'offset' => $offset
        ));
giveacodicetagpre.

يجب أن تكون جميع المفاتيح الأجنبية في صفيف الحقول الخاصة بك giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top