Я использую JQuery и CakePHP для своего приложения. У меня есть таблица Attributes(id,form_id,label,type)
В этой таблице у меня есть запись типа
1 1 First name Text
2 1 Lastname Text
Я написал запрос CakePhp для получения id
с учетом form_id
и label
$attri = $this->Attribute->find('all', array(
'fields'=> array('Attribute.id'),
'conditions' => array(
'Attribute.form_id' => $id,
'Attribute.label' => $key
)
));
где $key
мой label
и $id
- мой form_id
.
Однако, поскольку имя First включает промежуток между ними, условия не работают хорошо, но он работает для Lastname, поскольку между ними не было свободного пространства.
Как я могу это исправить?
Edit:
Я использую базу данных MySQL. Пользователь может сохранить любое имя поля. Я получил параметры $key из формы, используя $_POST, например:
foreach ($_POST as $key => $value):
echo $key; //displays First name correctly.
Но когда я использую ключ $в условиях, только если между меткой, которую он принимает, нет пробелов, он вернет идентификатор атрибута, иначе ничего не будет возвращено.
Я даже пытался использовать "$ key", но он тоже не работает.
Ошибка должна быть где-то еще в вашем коде. Совершенно нормально иметь пробелы в значениях, которые вы используете для условий. См. эту страницу в книге CakePHP. CakePHP автоматически избегает значений для вас, поэтому они работают даже с пробелами.
Посмотрите на свою модель атрибутов и посмотрите, что происходит в обратных вызовах beforeFind или afterFind.