Thursday, September 11, 2014

Re: Model chaining for a find statement not returning expected results

I think it's also worth mentioning that you don't need to define all the parameters of an association if you're not overwriting the default values, this can be a good way to test if you've set up your associations correctly.

public $belongsTo = array(
    'DeviceType'
);

I will also note that in your RepairType model, you define a belongsTo association DeviceRepairs with a foreign key of id, I can't see the opposite of this association but it's like going to be device_repair_id (or repairs if you're using a plural field name, in which case you do have to define the foreignKey)

Have another look at the examples here

Once you've made your relationships consistent you'll likely find your queries work and containable will also work as desired, (recursive is a nice easy option but it will ultimately add a lot of overhead if you retrieve data you do not need, you can change the recursive value in the find query though).

On 11 September 2014 22:48, Stephen S <hellospeakman@gmail.com> wrote:
Hi Paul

I notice you've got both DeviceRepairs and DeviceRepair within your associations, this is likely your issue.

It's convention to have a singular model name i.e. DeviceRepair, RepairType, a plural controller name i.e. DeviceRepairsController, RepairTypesController and a plural table name i.e. device_repairs, repair_types, ofcourse it's not 100% strict and you can change this but you're more likely to run into issues.

You can read more about naming conventions here


On 11 September 2014 16:30, Paul Drage <eswoosh.limited@gmail.com> wrote:
Cheers for that Mike,

I tried containing and ran into lots of different issues, I then spent about half an hour writing a REALLY UGLY javascript client side hack to do my lookup for me (against a different set of results), it was fast becoming a farce (see what i did there?)

Would you be happy to consult? I had a quick look at your business website, I'm really hoping it's something obvious..
Let me know what you'd like to know - cheers


On Thursday, 11 September 2014 11:43:59 UTC+1, Mike Karthauser wrote:
hi paul

if you are using recursive =1 in you queries you won't get all the info you need. I suggest you look at containable behaviour. ]


BTW Its makes no odds which controller calls the model function.

On 11 Sep 2014, at 11:03, Paul Drage <eswoosh...@gmail.com> wrote:

Should i just move everything to a different controller? surely there must be a way to do the association i need right in/before the query??

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+u...@googlegroups.com.
To post to this group, send email to cake...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

....................................
Mike Karthäuser
Director, Brightstorm Ltd.

1, Brewery Court
North Street
Bristol
BS3 1JS

mi...@brightstorm.co.uk
www.brightstorm.co.uk
+44(0) 7939252144
....................................

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.



--
Kind Regards
 Stephen Speakman



--
Kind Regards
 Stephen Speakman

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: