Also, if you haven't been reading everything. The problem is the fact that I can obtain the data I need from the Status model, but I cannot obtain the data from the Phase model.
On Feb 16, 4:21 am, "Arak Tai'Roth" <[email protected]> wrote: > So I went ahead and tried this Containable Behaviour to at least see > what it was like. I must say, I am impressed, it does make things > easier, and you were right, my code is cleaner, it's nice, so thank > you for that. > > However this model is still giving me grief, which leads me to believe > that it's probably something wrong with the model itself, but I can't > spot it. > > Here are my 3 models and the code in them: > > Build: > class Build extends AppModel > { > var $name = 'Build'; > var $actsAs = array('Containable'); > var $belongsTo = 'Status'; > var $hasMany = array( > 'Image' => array( > 'className' => 'Image', > 'foreignKey' => 'build_id', > 'dependant' => true, > 'fields' => array( > 'Image.picture', 'Image.caption' > ) > ) > ); > } > > Status: > class Status extends AppModel > { > var $name = 'Status'; > > var $belongsTo = 'Phase'; > } > > And there is no code for the Phase model, as it is never directly > accessed so I don't think it's necessary. And then my find method in > the Builds Controller: > $dbbuilds = $this->Build->find('first', array( > 'fields' => array( > 'Build.id', 'Build.name', > 'Build.slug', 'Build.description' > ), > 'conditions' => array( > 'Build.slug' => $slug > ), > 'contain' => array( > 'Image' => array( > 'fields' => array( > 'Image.picture', > 'Image.caption' > ) > ), > 'Status' => array( > 'Phase' > ) > ) > )); > > Could someone please tell me what I'm doing wrong? > > On Feb 16, 2:12 am, "Arak Tai'Roth" <[email protected]> wrote: > > > Thta's great that the Containable behaviour works and all. However I > > shouldn't need to use it, this should work as far as I can see. My > > question is why isn't it working, the recursive = 2 option is there so > > that something like this works. > > > On Feb 13, 7:51 pm, brian <[email protected]> wrote: > > > > Again, use Containable. Where you get the idea that using the > > > 'contain' option "adds more things to do" I'm not sure. It's certainly > > > made my code a heck of a lot tidier and simpler to understand. > > > > I bow in the general direction of whomever wrote that (Mariano?) > > > > On Fri, Feb 13, 2009 at 6:36 PM, Arak Tai'Roth <[email protected]> > > > wrote: > > > > > Anyone else have an idea? > > > > > On Feb 13, 10:34 am, "Arak Tai'Roth" <[email protected]> wrote: > > > >> I don't think that would help, and adds more things to do when as far > > > >> as I know, this should work fine. I will detail my problem a little > > > >> more here: > > > > >> I have three models, Build, Status, and Phase (or Builds, Statuses, > > > >> and Phases), they are linked in this manner: > > > >> class Build extends AppModel > > > >> { > > > >> var $name = 'Build'; > > > >> var $belongsTo = 'Status'; > > > > >> } > > > > >> class Status extends AppModel > > > >> { > > > >> var $name = 'Status'; > > > >> var $belongsTo = 'Phase'; > > > > >> } > > > > >> This line of code: > > > >> $dbbuilds = $this->Build->find('first', array('fields' => array('id', > > > >> 'name', 'slug', 'description'), 'conditions' => array('slug' => > > > >> $slug), 'recursive' => 2)); > > > > >> should grab the data in the Build model as indicated by the fields > > > >> array, but it should also grab the data in the Status model and in the > > > >> Phase model. It does grab the data in the Status model, yet does not > > > >> grab the data in the Phase model. I thought that was wierd and started > > > >> looking around for a why. I stumbled across the link I posted above > > > >> and decided to take out the fields array, so I ended up with this: > > > > >> $dbbuilds = $this->Build->find('first', array('conditions' => array > > > >> ('slug' => $slug), 'recursive' => 2)); > > > > >> And for some reason, this grabs all of the data in the Build model, > > > >> Status model, and the Phase model as it should. However I just don't > > > >> need all the data given to me in the Build model so this isn't a great > > > >> solution. And I would like to know why it is breaking in the first > > > >> line of code with the fields array being used, and what I can do to > > > >> fix it. > > > > >> On Feb 13, 1:52 am, "Liebermann, Anja Carolin" > > > > >> <[email protected]> wrote: > > > >> > Hi Arak, > > > > >> > I am not sure if I understand your problem correctly, but maybe the > > > >> > containable behaviour can > > > >> > help?http://book.cakephp.org/view/474/Containable > > > > >> > Anja > > > > >> > -----Ursprüngliche Nachricht----- > > > >> > Von: [email protected] [mailto:[email protected]] Im > > > >> > Auftrag von Arak Tai'Roth > > > >> > Gesendet: Donnerstag, 12. Februar 2009 21:55 > > > >> > An: CakePHP > > > >> > Betreff: recursive 2 with fields problem > > > > >> > So I have been looking around trying to figure out what my problem > > > >> > is and stumbled across this. > > > > >> >http://groups.google.com/group/cake-php/browse_thread/thread/3ded2f1b... > > > > >> > It's my exact issue, however there is no answer, so I was wondering > > > >> > if someone has an answer for this. > > > > >> > The issue if you didn't go to the link is this. Using the > > > >> > recursive=2 option in $this->Model->find() yields the results I > > > >> > need, however I want to limit what fields are found in the first > > > >> > model, so I use the 'fields' = array() option as well, and as soon > > > >> > as I do, I no longer get the second model that is indirectly related. > > > > >> > Any idea what I'm doing wrong? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
