+1

Jeremy Burns
Class Outfit

http://www.classoutfit.com

On 1 Nov 2011, at 09:43, WebbedIT wrote:

> @Chris: Please no, not another person advocating the use of $this-
>> query()!  Although this one is really special as anytime you join two
> models you give up and revert to running your own SQL?!?
> 
> Just because you can't get your head around associating models
> together and running Model::find (should get your head around
> containable too) does not mean you should recommend to others early in
> the learning curve to follow your cop-out path.
> 
> There are so many reasons to learn how to use Cake properly and it
> certainly does not make life harder, in fact you could not be further
> from the truth.  OK there are some circumstances where you need to
> learn how to leverage Model::find a little, but these are very few and
> far between and the benefits of having your data arrays passed back in
> a manner that the Form helper and Model::save expects them in saves
> you a ton of time.
> 
> Please go back to the book and take the time to learn it and don't
> advise others to give up on it.
> 
> Paul.
> 
> On Oct 31, 9:07 am, Chris Cinelli
> <[email protected]> wrote:
>> We have complicated queries that span across 8 tables. We decided to use
>> pure SQL code. We defined our data source and run SQL through it defining
>> our custom methods in the model that execute the query. If the query is
>> just on one table we use the ORM but pure SQL pretty much in the other
>> cases. The purpouse of the ORM layer is to make things easier. If you make
>> it  more complicated, why are you doing it?
>> On Oct 31, 2011 1:55 AM, "WebbedIT" <[email protected]> wrote:
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> Without seeing any of your code (model associations would have been
>>> nice) I logically assume you are using Article HABTM Tag.
>> 
>>> If so this does not create a model for the join table, but instead
>>> puts in place some automagic to allow you to link many-to-many records
>>> between the two models.  As such you can't run a find on the join
>>> model, which is what you would have to do to be able to have
>>> conditions spanning the three tables.
>> 
>>> Your options are to use unbind and bind to force joins that you can
>>> use:
>> 
>>> http://nuts-and-bolts-of-cakephp.com/2008/08/06/habtm-and-join-tricke...
>> 
>>> Or, my preferred option is to create a model for join tables
>> 
>>> Article hasMany ArticleTag
>>> Tag hasMany ArticleTag
>>> ArticleTag belongsTo Article, Tag
>> 
>>> This allows you to easily add extra fields into your join table and to
>>> run $this->Article->ArticleTag->find('all', array('conditions'=>array(
>>>  'Article.is_read'=>0,
>>>  'Article.status'=>1,
>>>  'Tag.name'=>'cakephp'
>>> )));
>> 
>>> HTH, Paul.
>> 
>>> P.S. Notice how I have changed some of your field names and values.
>>> Your isRead field should be lowercased and underscored and if boolen
>>> use tinyint(1) with 0 and 1.  When searching for articles by tag you
>>> would normally recieve the tagname in the request (much better for
>>> seo) so to query by Tag.id would require an extra find that I would
>>> say is unneccessary when you can filter by Tag.name (especially if you
>>> have the name field unique indexed).  I would also switch
>>> Article.status for numerical values, ideally with a lookup table so
>>> you can easily add/edit status text across all articles.
>> 
>>> On Oct 30, 8:50 am, SERKAN TURAN <[email protected]> wrote:
>>>> Hi,
>>>> I have an query and I could not figure it out what is the cakephp form of
>>>> it.
>> 
>>>> query:
>>>> -------------------------------------------
>>>> SELECT *
>>>> FROM
>>>>   tags`
>>>>   INNER JOIN `tags_articles` ON (`tags`.`id` = `tags_articles`.`tag_id`)
>>>>   INNER JOIN `articles` ON (`tags_articles`.`article_id` =
>>> `articles`.`id`)
>>>> WHERE
>>>>   `articles`.`isRead` = 'Not' AND
>>>>   `tags`.`id` = 3 AND
>>>>   `articles`.`status` = 'New'
>>>> ORDER BY
>>>>   `articles`.`name` DESC
>> 
>>> ---------------------------------------------------------------------------
>>> -------------------
>> 
>>>> Thnks..
>>>> ST
>> 
>>> --
>>> Our newest site for the community: CakePHP Video Tutorials
>>> http://tv.cakephp.org
>>> Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help
>>> others with their CakePHP related questions.
>> 
>>> To unsubscribe from this group, send email to
>>> [email protected] For more options, visit this group
>>> athttp://groups.google.com/group/cake-php
> 
> -- 
> Our newest site for the community: CakePHP Video Tutorials 
> http://tv.cakephp.org 
> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
> others with their CakePHP related questions.
> 
> 
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group at 
> http://groups.google.com/group/cake-php

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to