Предварительно упакованный Redbean извлекает только одну (последнюю) строку

Я хочу использовать предварительно упакованный однофайловый ORM Redbean 1.3 с http://www.redbeanphp.com. Когда я пытаюсь получить результат таким образом..

require_once ('redbean/rb.php');
require_once ('config.php');

R::setup('mysql:host='.MYSQL_HOST.';dbname=mydb', MYSQL_USER, MYSQL_PASS);
$test = R::find('function', ' ID < 10 ');
foreach ($test as $val) echo $val->Class.'<br>';

вывод выглядит следующим образом:

Notice: Undefined index: id in rb.php on line 3686

Notice: Undefined index: id in rb.php on line 3686

Notice: Undefined index: id in rb.php on line 3686
value.of.class.field.from.function.table    // << prints only the 9th value

Как видите, я получаю только результат последней строки, хотя есть записи для ID от 1 до xxx. Когда я устанавливаю для предложения where значение ID < 9, я получаю распечатку только 8-й строки.

Есть идеи, почему? Или какие-либо альтернативы redbean без конфигурации?


person Ben    schedule 14.04.2011    source источник


Ответы (2)


Идентификатор RedBeanPHP чувствителен к регистру, вам нужно использовать «id» вместо ID. Или вам нужно использовать Bean Formatter, чтобы убедиться, что RedBeanPHP знает, что вы хотите использовать ID в качестве первичного ключа:

http://www.redbeanphp.com/#/Custom_Keys

person Gabor de Mooij    schedule 15.06.2011

Вы можете переименовать свой первичный ключ своей таблицы в «id», тогда Redbean сможет его идентифицировать. Если вы не хотите изменять свою схему таким образом, вам необходимо отформатировать bean-компонент и соответствующим образом вернуть пользовательский идентификатор:

class MyTableFormatter implements RedBean_IBeanFormatter{
    public function formatBeanTable($table) {
            return $table;
    }
    public function formatBeanID( $table ) {
             if ($table=="user") return "user_id";
            return "id";
    }
}

R::$writer->tableFormatter = new MyTableFormatter;
$user = R::find( "user" );

Ссылка на код: https://groups.google.com/forum/#!topic/redbeanorm/weIEM8p71eQ

person kta    schedule 22.02.2014