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
-~----------~----~----~----~------~----~------~--~---

Reply via email to