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