Два похожих запроса CakePHP на получение данных - что мне не хватает? - PullRequest
1 голос
/ 10 июня 2011

Я был озадачен, когда мне не удалось выполнить этот запрос:

$results = $this->Event->find('first', array('conditions'=>array(
    'user_id' => $user_id,
    'home_num' => $num
)));
var_dump($user_id, $num, $results); die;

, который выдает:

string(4) "5166" string(5) "12931" bool(false)

Изменение его просто на:

$results = $this->Event->find('list', array('conditions'=>array(
    'user_id' => $user_id,
    'home_num' => $num
)));
var_dump($user_id, $num, $results); die;

дает:

string(4) "5166" string(5) "12931" array(1) { [1569006]=> string(22) "User favourited a home" }

Чего мне здесь не хватает, относительно того, как я использую find ('first')?

РЕДАКТИРОВАТЬ ДОБАВИТЬ:

Таким образом, проблема заключается в неоднозначных именах столбцов.Если я изменю свой код для поиска Event.user_id, а не неоднозначного user_id, проблема больше не будет.

Здесь все еще есть вопрос, я думаю, что - почему бы «список» не захлебнулсядвусмысленное название столбца, где «первый» или «все» умирают в огне?Что-то связанное с тем, что это более простой вид запроса, который не нужно связывать со связанными таблицами, я ожидаю ...

Ответы [ 2 ]

0 голосов
/ 26 июня 2011

Ну, в интересах дать реальный ответ на этот вопрос:

Проблема заключалась в неоднозначных именах столбцов.Если бы я изменил свой код, чтобы искать Event.user_id, вместо неоднозначного user_id, больше не было бы проблемы.

Если будущие поколения CakePHPers не могут понять, почему их запросы к базе данных терпят неудачу, ища неоднозначныйИмена столбцов в связанных таблицах могут помочь ...

0 голосов
/ 11 июня 2011

Какие результаты дает следующий результат?

$results = $this->Event->find('all', array('conditions'=>array(
    'user_id' => $user_id,
    'home_num' => $num
)));

Я могу только предположить, что он не находит никаких результатов, поэтому он возвращает false.

Что касается того, почему «список» дает вам хороший набор элементов, просто предположение, но он может иметь другой набор опций, которые смешаны с ним, или он может игнорировать те, которые в данный момент существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...