Thursday, September 25, 2014

Re: Nested "->contain"

OK, i got it to work!!!

$contract = $this->get($id,
        ['contain' => [
            'EntitiesEmp' => ['Cities', 'Owners'],
            'EntitiesPro' => ['Cities']
        ]]);
 

Em quinta-feira, 25 de setembro de 2014 16h34min23s UTC-3, Tiago Barrionuevo escreveu:
I tried this:

$contract = $this->get($id,
        ['contain' => [
            'EntitiesEmp' => ['contain' => ['Cities', 'Owners']],
            'EntitiesPro' => ['Cities']
        ]]);

And I got the exception:

"EntitiesEmp is not associated with contain"

------------------------------------
My Models:

class ContractsTable extends Table {
  public function initialize(array $config)
  {
    $this->belongsTo('EntitiesEmp',
        ['className' => 'Entities', 'foreignKey' => 'entity_emp_id',
            'propertyName'=>'entity_emp', 'conditions'=>'EntitiesEmp.tipo = 2']);
    $this->belongsTo('EntitiesPro',
        ['className' => 'Entities', 'foreignKey' => 'entity_pro_id',
            'propertyName'=>'entity_pro', 'conditions'=>'EntitiesPro.tipo = 3']);
  }
}

----------------
class EntitiesTable extends Table {

  public function initialize(array $config)
  {
    $this->belongsTo('Cities');
    $this->belongsTo('Owners');

    ...
  }
}


Em quinta-feira, 25 de setembro de 2014 15h59min56s UTC-3, Tiago Barrionuevo escreveu:
Hi,

I can't get nested contains to work.
First it seems that table->get don't accept the same syntax that table->find, like:

$query = $articles->get($id)->contain([
'Authors' => ['Addresses'], 'Comments' => ['Authors']
]);
 
Tell me if i'm wrong.

And how I can get nested contain like this (using sample from the book - 2 nested tables with Cities):

$query = $products->find()->contain([
'Shops.Cities.Countries',
'Shops.Cities.States',
'Shops.Managers'
]);

I tried some different syntax with table->get() but I can't get it to work!

Thanks in advance.
 

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: