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.

Reply via email to