Reputation: 55
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
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