I can't believe that was it. I thought it automatically grabbed the status_id like it does for the relationships.
Thank you for your help. On Feb 16, 10:42 am, brian <[email protected]> wrote: > Try adding Build.status_id to that first fields array. > > On Mon, Feb 16, 2009 at 5:22 AM, Arak Tai'Roth <[email protected]> > wrote: > > > 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 -~----------~----~----~----~------~----~------~--~---
