Первоначально опубликовано на CakePHP Q & A, но я выложу это здесь в надежде получить ответы на некоторые вопросы.
У меня есть группа компаний, которая по умолчанию имеет статус 0, ноиногда получить более высокий статус.Теперь я хочу использовать высокий статус, если существует, но вернуться к 0, если нет.Я испробовал несколько разных подходов, но всегда получаю только те, которые имеют статус 0 или те, у которых есть статус, который я хочу, никогда не давая мне статус, если существует, и 0, если нет.
Дает мне только статусЯ указываю, не давая мне те, которые имеют статус 0:
'Company' => array (
'conditions' => array (
'OR' => array(
'Company.status' => 0,
'Company.status' => $status,
)
)
)
Дает мне только статус 0:
'Company' => array (
'conditions' => array (
'OR' => array(
'Company.status' => $status,
'Company.status' => 0
)
)
)
Определение статуса и получение данных в коде:
function getCountry($id = null, $status = null) {
// Bunch of code for retrieving country with $id and all it's companies etc, all with status 0.
$status_less_companies = $this->Country->find...
if ($status) {
$status_companies = $this->Country->find('first', array(
'conditions' => array(
'Country.id' => $id
),
'contain' => array(
'Product' => array (
'Company' => array (
'conditions' => array (
'OR' => array(
'Company.status' => $status,
'Company.status' => 0
)
)
)
)
)
)
}
// Mergin $status_less_companies and $status_companies and returning data to flex application.
}
Я изменил название моделей для этого вопроса, просто чтобы придать ему больше смысла, люди, в общем-то, напуганы, когда я говорю им, что я работаю с cakephp для своего приложения flex.Я думаю, логика этого вопроса не имеет смысла, но поверьте мне, что это имеет смысл в моем приложении.
Спасибо!