Well that's good news, much is made of the new ORM, but it seems as though 
bread and butter (not cake :) queries can be constructed in the same way 
that they could before (CakePHP 2) using contain?

Having watched your recent video release - 'Faster application development 
with CakePHP 3.0' I understand that you love and are passionate about SQL. 
Not everybody is, and I'm one of them. I want as much of the pain taken out 
of it as possible of constructing the SQL and find that the format below 
serves me well for about 98% of what I'm after.

Thanks for the reply

Dave
On Tuesday, 31 March 2015 08:33:16 UTC+1, José Lorenzo wrote:

> Hopefully from our previous messages you can guess it yourself:
>
> $options = array(
>                 'conditions' => array(
>                     'Rentals.id' => $id,
>
>                     ),
>                     'contain' => array(
>                         'Trailers' => array(
>
>                             'fields' => array('id', 'number', 'make', 
> 'year', 'license', 'vin', 'skirt')
>                         ),
>                         'Lessees' => array(
>                             'fields' => array('id', 'account', 'name', 
> 'address_1', 'address_2', 'city', 'state', 'zip_1', 'zip_2')
>                         )
>                     )
>                 );
>
>
>             $rental = $this->Rentals->find('all', $options)->first();
>
> You can also use the where(), select() and contain() methods if you prefer 
> not using an array.
>
> On Monday, March 30, 2015 at 10:29:40 PM UTC+2, Dave Edwards wrote:
>>
>> BUMP!
>>
>> On Tuesday, 24 March 2015 20:33:49 UTC, Dave Edwards wrote:
>>>
>>> Thanks for the reply,
>>>
>>> That being the case, I am pleasantly surprised that despite the 
>>> documentation making a big play on how different the new ORM is, I can (if 
>>> I choose) create my queries in much the same way.
>>>
>>> The example I posted was a effectively a find 'all' (paginated using a 
>>> limit clause). What about a find first, is this still as straightforward? 
>>> Here is an example from the same controller, how would that translate 
>>> please?
>>>
>>>
>>>             $options = array(
>>>                 'conditions' => array(
>>>                     'Rental.id' => $id,
>>>                     ),
>>>                     'contain' => array(
>>>                         'Trailer' => array(
>>>                             'fields' => array('id', 'number', 'make', 
>>> 'year', 'license', 'vin', 'skirt')
>>>                         ),
>>>                         'Lessee' => array(
>>>                             'fields' => array('id', 'account', 'name', 
>>> 'address_1', 'address_2', 'city', 'state', 'zip_1', 'zip_2')
>>>                         )
>>>                     )
>>>                 );
>>>
>>>
>>>             $this->request->data = $this->Rental->find('first', $options
>>> );
>>>
>>> Dave
>>>
>>> On Tuesday, 24 March 2015 13:04:21 UTC, Dave Edwards wrote:
>>>>
>>>> Here is a sample of some code I use in a Trailer rental application. 
>>>> This is a method from the Rental Controller.
>>>>
>>>> Rental hasMany Trailers and hasMany Lessees
>>>>
>>>> public function archived($id = null) {
>>>>
>>>>
>>>>         $options = array(
>>>>           'limit' => 10,
>>>>           'order' => 'Trailer.number ASC',
>>>>           'fields' => array('id', 'trailer_id', 'lessee_id', 'date_out'
>>>> , 'rented', 'agreement_number'),
>>>>           'conditions' => array(
>>>>               'Rental.deleted' => '1',
>>>>           ),
>>>>           'contain' => array(
>>>>               'Trailer' => array(
>>>>                   'fields' => array('id', 'number', 'make', 'license'),
>>>>               ),
>>>>               'Lessee' => array(
>>>>                   'fields' => array('id', 'account', 'name'),
>>>>               )
>>>>           )
>>>>         );
>>>>
>>>>
>>>>         $this->paginate = $options;
>>>>         $this->set('rentals', $this->paginate());
>>>>  }
>>>>
>>>>
>>>> Turning off recursive, and using Containable provides a very flexible 
>>>> and readable method of building a query. Adding conditions, fields, 
>>>> associated models etc is a snip. Whoever produced this method of working 
>>>> should be fully credited.
>>>>
>>>> My question is, how would something like this be created in CakePHP 3? 
>>>> There seem to be many many more pages to read and understand regarding the 
>>>> new ORM, and I'm really unsure how simple it will be to convert. Will I be 
>>>> able to achieve it in the a similar manner, and will it be as readable, 
>>>> and 
>>>> easy to edit?
>>>>
>>>> Are there any examples in the new Manual (I can't find any), where the 
>>>> new ORM is used to bring all the new methods of working together in much 
>>>> the same way as the method above?
>>>>
>>>> Thanks
>>>>
>>>> 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