You know,
I did whatever you said, but things still didn't work the way I
hoped. Or maybe theres something I didn't get from you.
1. I have to have models/model.php and models/part.php and models/
parts_model.php right?
2. I also need to setup a database called 'models', 'parts', and the
HABTM table 'models_parts' ?
3. In my models/model.php and models/part.php, and in those files, I
need to have something like this:
model.php:
var $hasAndBelongsToMany = array(
'Part' => array('className' => 'Part',
'joinTable' => 'models_parts',
'foreignKey' => 'model_id',
'associationForeignKey' => 'part_id',
'with' => 'ModelsPart',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
part.php:
var $hasAndBelongsToMany = array(
'Model' => array('className' => 'Model',
'joinTable' => 'models_parts',
'foreignKey' => 'part_id',
'associationForeignKey' => 'model_id',
'with' => 'ModelsPart',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
models_part.php:
var $belongsTo = array(
'Model' => array('className' => 'Model',
'foreignKey' =>
'model_id',
'conditions' =>
'',
'fields' => '',
'order' => ''
),
'Part' => array('className' => 'Part',
'foreignKey' =>
'part_id',
'conditions' =>
'',
'fields' => '',
'order' => ''
)
);
4. WIth the above setup, I should've been able to run?
$this->Model-> ModelsPart->find('all',
array('conditions'=>array('ModelsPart.model_id'=>$id)));
However, all I got is the error saying the following:
Notice (8): Undefined property: Model::$ModelsPart [APP/controllers/
models_controller.php, line 33]
Code | Context
$id = "16"
$this->Model->recursive = 2;
$this->set('model', $this->Model->find($id));
debug($this->Model->ModelsPart->find('all',
ModelsController::view() - APP/controllers/models_controller.php, line
33
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 268
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 240
[main] - APP/webroot/index.php, line 84
Is there anything else I should do? This is really frustrating for
me, since I can already get related models from parts_controller, but
I cannot do the other way around.
Thanks alot.
On May 20, 2008, at 10:45 PM, Joel Perras wrote
>
> If I understand correctly, you want to be able to find parts that
> belong to a common model from your Model controller.
>
> First, you should add in the 'with' parameter to your Parts model and
> Model model (say that a couple times fast). In your PartsModel:
> 'with'=> 'ModelsPart' and similarly in your ModelModel. This will
> tell Cake to bind the join models correctly so that you can retrieve
> associated model data through simple find() calls instead of having to
> dynamically bind and unbind models.
>
> Now you should be able to run:
> $this->Model->PartsModel->find('all',
> array('conditions'=>array('PartsModel.model_id'=>4))
>
> Also, if you live on the bleeding edge of the Cake nightlies, then you
> might want to check out the 'Containable' behaviour. It has zero
> documentation as of this point, but the test cases give you a good
> idea of what it's meant to do.
>
> -Joel.
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---