Mysql
 sql >> база данни >  >> RDS >> Mysql

Cakephp - съдържа (съдържащо поведение) извлича твърде много

Вашите модели изобщо не изглеждат задържани. Настроили ли сте вашите модели да действат като контейнерни?

class Post extends AppModel {
    public $actsAs = array('Containable');
}

Ако е така, може би проблемът е в рекурсията (за да се избегне получаването на Group масив със заявката). Containable поведението трябва да се справя с нивото на рекурсия самостоятелно, но опитайте да го зададете в AppModel, за да сте сигурни

class AppModel extends Model {
    public $actsAs = array('Containable');
    public $recursive = -1;

Вашият първи опит

    'contain'       => array(
        'User'          => array(
            'fields' => array('id', 'fullName')
        ),
    )

изглежда добре по отношение на синтаксиса, така че вероятно е actAs нещо.

Също така, за отстраняване на грешки също опитайте

$this->Membership->contain('User');
$this->Membership->find('all', array(
    'conditions'    => array(
            'group_id'      => $id
        ));

и вижте дали ще получите очакваните резултати по този начин.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразуване на PHP диапазон от време в MYSQL отделни дати

  2. Съхранение на файлове за уеб приложения:файлова система срещу DB срещу NoSQL двигатели

  3. Заключване и паралелност с MySQL

  4. Поставяне на информация за базата данни на mySQL в масив на JavaScript

  5. SQL изразът игнорира параметъра where