Запрос для использования в условиях, когда между значением находится пробел

0

Я использую 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", но он тоже не работает.

  • 0
    почему в вашей колонке есть пробел? какую базу данных вы используете? я бы предложил поставить подчеркивание между first_name или изменить его на firstname
  • 0
    Я не вижу причин, по которым пространство в условиях не будет работать .. Откуда вы берете свои параметры? Они urlencoded?
Показать ещё 5 комментариев
Теги:
cakephp

1 ответ

0

Ошибка должна быть где-то еще в вашем коде. Совершенно нормально иметь пробелы в значениях, которые вы используете для условий. См. эту страницу в книге CakePHP. CakePHP автоматически избегает значений для вас, поэтому они работают даже с пробелами.

Посмотрите на свою модель атрибутов и посмотрите, что происходит в обратных вызовах beforeFind или afterFind.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню