Skip to main content

CakePHP multiple condition

Multiple condition in find CakePHP

Example 1: If you want this query in CakePHP

SELECT first_name, last_name,joining_date from employees
WHERE id = 047 AND ((joining_date = Last_day(joining_date)
        AND Month(joining_date) IN(3, 6, 9, 12))
        OR (joining_date = '2015-12-10'))
     
$this->Employee->find('all', 
  array('fields' => 
       array('first_name','last_name','joining_date'),
        'conditions' => 
      array('id' => 047,
    'OR' => array(
     array(
      'joining_date = LAST_DAY(joining_date)',
      'MONTH(joining_date)' => array(3,6,9,12)),
    'joining_date' => '2015-12-10'))
    ));

Example 2:
    
$conditions = array(
   'OR' => array(
      array('Employee.name' => 'Sudhir Pandey'),
      array('Employee.name' => 'Nitish Srivastava')
   ),
   'AND' => array(
      array(
        'OR'=>array(
            array('Employee.status' => 'active'),
            'NOT'=>array(
               array('Employee.status'=> array('inactive', 'suspended'))
            )
        )
     )
   )
);

$this->Employee->find('all',array('conditions'=>$conditions));

It will equivalent result to 

SELECT `Employee`.`id`, `Employee`.`name`, `Employee`.`department`,`Employee`.`created`, `Employee`.`status`
FROM `Employees` AS `Employee` WHERE 
((`Employee`.`name` = ‘Sudhir Pandey’) OR (`Employee`.`name` = ‘Nitish Srivastava’))
AND (`Employee`.`status` = ‘active’) OR (NOT (`Employee`.`status` IN (‘inactive’, ‘suspended’))))

Example 3: Only Create conditions

$conditions = array(
    'AND' => array(
        array(
            'OR' => array(
                array('Event.private' => null),
                array('Event.private' => 0)
            )
        ),
        array(
            'OR' => array(
                array('Gallery.private' => null),
                array('Gallery.private' => 0)
            )
        ),
        array(
            'OR' => array(
                array('User.deleted' => null),
                array('User.deleted' => 0)
            )
        )
    )
);

Comments

Popular posts from this blog

Generate XML file in Cakephp

Steps to Generate XML file using CakePHP: Step-1 Enable to parse xml extension in config route.php file.     Router::parseExtensions('xml'); Step-2 Add Request Handler Component to the Controller    var $components = array(‘RequestHandler’); Step-3 Add controller Action For XML Generation in Post Controller     function generateXMLFile()     {         if ($this->RequestHandler->isXml()) { // check request type             $this->layout = 'empty'; // create an empty layout in app/views/layouts/empty.ctp              }        }  Add header code in empty layout <?php header('Content-type: text/xml');?> <?php echo $this->Xml->header(); ?> <?php echo $content_for_layout; ?> Step-4 Set up View To generate XML Create xml folder inside Posts vi...

How To Create Shortcodes In WordPress

We can create own shortcode by using its predified hooks add_shortcode( 'hello-world', 'techsudhir_hello_world_shortcode' ); 1. Write the Shortcode Function Write a function with a unique name, which will execute the code you’d like the shortcode to trigger: function techsudhir_hello_world_shortcode() {    return 'Hello world!'; } Example: [hello-world] If we were to use this function normally, it would return Hello world! as a string 2. Shortcode function with parameters function techsudhir_hello_world_shortcode( $atts ) {    $a = shortcode_atts( array(       'name' => 'world'    ), $atts );    return 'Hello ' . $a['name'] . !'; } Example: [hello-world name="Sudhir"] You can also call shortcode function in PHP using do_shortcode function Example: do_shortcode('[hello-world]');

How to replace plain URLs with links

Here we will explain how to replace Urls with links from string Using PHP $string ='Rajiv Uttamchandani is an astrophysicist, human rights activist, and entrepreneur. Academy, a nonprofit organization dedicated to providing a robust technology-centered education program for refugee and displaced youth around the world.  CNN Interview - https://www.youtube.com/watch?v=EtTwGke6Jtg   CNN Interview - https://www.youtube.com/watch?v=g7pRTAppsCc&feature=youtu.be'; $string = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.%-=#]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $string); Using Javascript <script> function linkify(inputText) {     var replacedText, replacePattern1, replacePattern2, replacePattern3;     //URLs starting with http://, https://, or ftp://     replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;     replacedText = inputT...