user272819
user272819

Reputation: 55

How to build join with condition in Phalcon

I have the following SQL:

SELECT  `settings`.*, `character_settings`.`value`
FROM    `settings`
LEFT JOIN 
       `character_settings` 
ON     `character_settings`.`setting_id` = `settings`.`id`
        AND `character_settings`.`character_id` = '1'  

How the same query can be rewritten using Phalcon CreateBuilder() ?

Upvotes: 1

Views: 1127

Answers (1)

Phantom
Phantom

Reputation: 1700

Try something like this:

$rows = $this->modelsManager
             ->createBuilder()
             ->columns(array('Settings.*', 'CharacterSettings.value as char_value'))
             ->from('Settings')
             ->leftJoin('CharacterSettings', 'Settings.id = CharacterSettings.setting_id AND CharacterSettings.character_id  = 1')
             ->getQuery()
             ->execute();

foreach ($rows as $row) {
    print_r($row->settings->id . ' : ' . $row->char_value);
}

Don't forget to add db columns as fields to your models:

class Settings extends Phalcon\Mvc\Model
{
    public $id;

    public $name;

    ...

Upvotes: 2

Related Questions