How about:
$params = array('contain' => 'Product.name',
'fields' => array('DISTINCT(Equipment.**product_id) AS
id', 'Product.name'),
'order' => array('Product.name'),
'group' => array('Equipment.product_id'),
'conditions' => array(
'AND' => array(
** 'Equipment.company_id' =>
$this->passedArgs['company'],
** 'Equipment.deleted' => 0,
** 'OR' => array(
** array('Equipment.location_**id'
=> null),
** array('Equipment.location_**id'
=> -1 ),
** array('Equipment.location_**id'
=> -2)
** )
)
));
According to an example in
http://book.cakephp.org/1.3/view/1030/Complex-Find-Conditions that sets
multiple conditions on the same field inside an "OR":
array(
'OR' => array(
array('Post.title LIKE' => '%one%'),
array('Post.title LIKE' => '%two%')
)
);
2012/8/1 scs <[email protected]>
> Thanks for your response.
>
> Unfortunately, that did not work. I'm still only getting the last element
> of the "OR" array. FWIW: Cake 1.3.10
>
>> SELECT DISTINCT(`Equipment`.`product_id`) AS id, `Product`.`name`,
>> `Product`.`id` FROM `equipment` AS `Equipment` LEFT JOIN `products` AS
>> `Product` ON (`Equipment`.`product_id` = `Product`.`id`) WHERE
>> ((`Equipment`.`company_id` = 23) AND (`Equipment`.`deleted` = 0) AND
>> (`Equipment`.`location_id` = -2)) GROUP BY `Equipment`.`product_id` ORDER
>> BY `Product`.`name` ASC
>
>
> Any other help?
>
> On Tuesday, July 31, 2012 4:09:16 PM UTC-4, lavin wrote:
>
>> Try something like this:
>>
>> $params = array('contain' => 'Product.name',
>> 'fields' => array('DISTINCT(Equipment.**product_id) AS
>> id', 'Product.name'),
>> 'order' => array('Product.name'),
>> 'group' => array('Equipment.product_id'),
>> 'conditions' => array(
>> 'AND' => array(
>> ** 'Equipment.company_id' =>
>> $this->passedArgs['company'],
>> ** 'Equipment.deleted' => 0,
>> ** 'OR' => array(
>> ** 'Equipment.location_**id' =>
>> null,
>> ** 'Equipment.location_**id' =>
>> -1,
>> ** 'Equipment.location_**id' =>
>> -2
>> ** )
>> )
>> ));
>>
>> Allowing the "OR" subset to be one of the elements considered inside the
>> AND
>>
>> 2012/7/31 scs:
>>
>> > I'm trying to perform what has been called a complex condition in some
>> of
>> > the documentation I have found. I want to use "AND" and "OR" in the
>> > conditions portion of my query via find('all', $params). I haven't been
>> able
>> > to find anything that seems to match my issue (although I'm sure it's
>> out
>> > there).
>> >
>> > I'm not sure what to do. I've tried many different variations of the
>> > conditions array, none seem to work. At best, the query is built with
>> only 1
>> > of the "OR" items, always the last one in the array.
>> >
>> > Here's the information:
>> > $params = array('contain' => 'Product.name',
>> > 'fields' => array('DISTINCT(Equipment.**product_id) AS
>> id',
>> > 'Product.name'),
>> > 'order' => array('Product.name'),
>> > 'group' => array('Equipment.product_id'),
>> > 'conditions' => array('AND' =>
>> array('Equipment.company_id'
>> > => $this->passedArgs['company'], 'Equipment.deleted' => 0,),
>> > 'OR' =>
>> array('Equipment.location_id'
>> > => null, 'Equipment.location_id' => -1, 'Equipment.location_id' => -2))
>> > );
>> > $equipList = $this->Equipment->find('all', $params);
>> >
>> > The sql debugged is: SELECT DISTINCT(`Equipment`.`product_**id`) AS
>> id,
>> > `Product`.`name`, `Product`.`id` FROM `equipment` AS `Equipment` LEFT
>> JOIN
>> > `products` AS `Product` ON (`Equipment`.`product_id` = `Product`.`id`)
>> WHERE
>> > ((`Equipment`.`company_id` = 23) AND (`Equipment`.`deleted` = 0)) AND
>> > `Equipment`.`location_id` = -2 GROUP BY `Equipment`.`product_id` ORDER
>> BY
>> > `Product`.`name` ASC
>> >
>> > What I am looking for is: SELECT DISTINCT(`Equipment`.`product_**id`)
>> AS id,
>> > `Product`.`name`, `Product`.`id` FROM `equipment` AS `Equipment` LEFT
>> JOIN
>> > `products` AS `Product` ON (`Equipment`.`product_id` = `Product`.`id`)
>> WHERE
>> > ((`Equipment`.`company_id` = 23) AND (`Equipment`.`deleted` = 0)) AND
>> > (`Equipment`.`location_id` IS NULL OR `Equipment`.`location_id` = -1 OR
>> > `Equipment`.`location_id` = -2) GROUP BY `Equipment`.`product_id` ORDER
>> BY
>> > `Product`.`name` ASC
>> >
>> > Any and all help is greatly appreciated.
>> > Thanks.
>> >
>> > --
>> > 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
>> > cake-php+unsubscribe@**googlegroups.com<cake-php%[email protected]>For
>> > more options, visit this group at
>> > http://groups.google.com/**group/cake-php<http://groups.google.com/group/cake-php>
>>
>>
>>
>> --
>> -Carlos
>>
> --
> 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
>
--
-Carlos
--
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