Я использую CakePHP 2.0, и у меня есть модель с этим 'virtualFields':
Country.php:
var $virtualFields = array(
'path' => "CONCAT_WS('/', dirname, basename)"
);
Если я делаю это в контроллере, который использует «Пользователь»
$users = $this->User->find('all');
установлено виртуальное поле path
.
Если я использую это в моем контроллере, который также использует «Пользователь»
$options['fields'] = array(
'DISTINCT User.*'
);
$options['joins'] = array(
array(
'table' => 'courses',
'type' => 'inner',
'conditions' => array(
'User.id = courses.user_id'
)
),
array(
'table' => 'times',
'type' => 'inner',
'conditions' => array(
'courses.id = times.course_id'
)
)
);
$options['conditions'] = array(
'times.amount > ' => 0
);
$users = $this->User->find('all', $options);
С опциями поле path
не установлено, конечно, в SQL-запросе, похоже, нет включенного поля "CONCAT_WS ('/', dirname, basename)", которое включается, если я делаю find
операция без опций.
Что я могу сделать с опциями, чтобы виртуальное поле автоматически включалось? Конечно, я могу написать в fields
опциях CONCAT, но это не очень приятно, особенно если я его изменю.
С уважением.