2009-07-06 2 views
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. Однако, поскольку Имя включает пробел между ними, условия не работают хорошо, но он работает для Lastname, так как он не имел промежутка между ними. Как я могу это исправить?

Редактировать:

Я использую базу данных MySQL. Пользователь может сохранить любое имя поля. я получил параметры $ ключ из формы с помощью $ _POST, например:

foreach ($_POST as $key => $value): 
echo $key; //displays First name correctly. 

Но когда я использую $ ключ в условиях, только если пробелы не находятся между этикеткой он принимает, он возвращает атрибут id, иначе ничего не возвращается.

Я даже попытался использовать «$ key», но он тоже не работает.

+0

Почему в вашей колонке есть пробел? какую базу данных вы используете? я бы предложил поставить подчеркивание между first_name или изменить его на firstname – jimiyash

+0

Я не вижу причин, по которым пространство в условиях не сработает. Откуда вы получаете свои параметры? Являются ли они urlencoded? –

+0

Я использую базу данных MYSQl. Пользователь может сохранять любое имя поля. Параметры $ ключ я получил его сформировать форму с помощью $ _POST например Еогеасп ($ _POST, как $ ключ => $ значение): эхо $ ключа; // отображает первое имя правильно. Но если я использовал $ key в условиях, только если между меткой он не принимает пробелов и не возвращает атрибут id.Else ничего не возвращается. – useranon

ответ

0

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

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

Смежные вопросы