In the last example each person entity will have a person_set property when you 
loop it

Also ->toArray() on a query is a good way to see what the result set contains

/Thomas



Sent from my iPhone

> On 19/08/2014, at 15.31, Dave Edwards <goo...@bubbletoonz.com> wrote:
> 
> Thanks for the replies,
> 
> Having thought about it, I think that main thing that currently confuses me 
> is not the construction of the queries, but the process of getting to the 
> data once the object has been returned. Previously I could just drop a 
> pr($result) into the Controller or view and immediately see what data I had. 
> If I try that now it comes up a structure where the data is buried in things 
> like [_properties:protected] ?
> 
> Also the new ORM involves looping through the object (on some occasions, but 
> not others) to get the data out using something like 
> 
> foreach ($query->all() as $person)
> 
> ??
> 
> There's also the issue of getting at the data in the view (or templates as 
> they are now called).
> 
> If for example I had a one to many from Person to PersonSets and I used the 
> following
> 
> $persons = $this->Persons->find('all')->contain('Personsets')
> 
> How do I get at both the person data and the associated sets. In CakePHP 2 I 
> could loop through the associated data using something like
> 
>  foreach($persons['PersonSets'] as $set)
> 
> How would this be done?
> 
> I'm sorry if there are basic questions, but there is lot of example in your 
> documentation on the new ORM, a lot on Controllers etc etc, but not many end 
> to end examples (apart from the blog).
> 
> Dave
> 
>> On Tuesday, 19 August 2014 10:16:42 UTC+1, José Lorenzo wrote:
>> My answers are inline:
>> 
>>> On Monday, August 18, 2014 4:59:42 PM UTC+2, Dave Edwards wrote:
>>> Hi,
>>> 
>>> I'm having trouble getting my head around the new ways of working with the 
>>> new ORM in CakePHP 3.
>> 
>> That's normal, given that you are a longtime CakePHP user, hopefully it will 
>> make sense to you very fast :) 
>>> 
>>> I understand that an object is now returned instead of an array, but I find 
>>> the amount of new Documentation to explain the new methods of working with 
>>> Models almost overwhelming. Whilst it is certainly well written, it seems 
>>> to be pitched at a different (higher level) of user to previous versions. 
>>> To give an example of this, the first paragraph explaining what Models are, 
>>> it says 'interactions and evolution of the information workflow in your 
>>> domain of work.' Sorry, but what does this really mean, in plain English?
>> 
>> If you have been using CakePHP for some time, then I guess you don;t need 
>> models to be explained to you. But in plain english,  it is where the core 
>> of your application exists, when any user interaction is taken away. That 
>> is, all data processing, updating and the rules to follow to keep your data 
>> sane.
>> 
>>> 
>>> The documents also seem to switch backwards and forwards between different 
>>> methods, such as the section called 'Find returns a query object' where it 
>>> shows this method to return articles
>>> 
>>> $articles = TableRegistry::get('Articles');
>>> $query = $articles->find();
>>> $query->where(['author_id' => 1])->order(['title' => 'DESC']);
>>> then it shows you this a few lines later
>>> 
>>> $article = $this->Articles->find('all', [
>>>     'conditions' => ['author_id' => 1]
>>> ])->first();
>>> which is much more like CakePHP 2. What's the difference, which should I be 
>>> using and which is better. Do they give the same results? How do I get my 
>>> data out of the objects?
>> 
>> Both ways are exactly the same, we offered the 2 alternatives to make users 
>> coming form 2.x feel more at home. I would say the first form is preferred 
>> as it is more flexible.
>>  
>>> 
>>> As a user of CakePHP 1.xx and 2.xx for the past 6 years, I am obviously 
>>> comfortable using those versions of the framework, and the appeal of 
>>> CakePHP to me has always been that it could be easily used by novices and 
>>> professionals alike. I know that part of the complaint regarding previous 
>>> versions of CakePHP was that queries returned data arrays, and not objects, 
>>> and I'm sure that the changes to the Model layer will attract more 
>>> professional users, but I hope that this isn't at the expense of those 
>>> choosing a framework for the first time, or cutting their teeth on PHP.
>> 
>> I don't think it is, on the contrary, I feel that the ORM is much more 
>> approachable and understandable that its previous incarnations.
>>  
>>> 
>>> Now before Mark, Mark and Jose etc. jump on me, I am not being critical of 
>>> their fantastic efforts to modernise the framework, or the reasons for 
>>> doing so. I am also not adverse to change, especially if it is for the 
>>> better, which is why I am attempting to get to know this new version, even 
>>> though it is still in Alpha, and yes I have read the documentation, but the 
>>> more I read the more confused I get.
>>> 
>>> I know that people at this stage will say, that if I could do better, then 
>>> I should contribute to the documents myself. But in order to do so, I would 
>>> need to understand them first! :) They do say that programmers shouldn't 
>>> write manuals, and perhaps this is a case in point?
>> 
>> I would like to know what is exactly confusing you, so we can help you 
>> understand how things work. Let me also suggest buying tickets for cakefest, 
>> much of the ORM internals, tips and tricks will be explained in detail there 
>> :)
>>> 
>>> Dave
> 
> -- 
> 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+unsubscr...@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.

-- 
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+unsubscr...@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.

Reply via email to