Я хотел бы использовать предварительно упакованный однофайловый Redbean 1.3 ORM с 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?
Идентификатор RedBeanPHP чувствителен к регистру, вам нужно использовать «id» вместо ID. Или вы должны использовать Bean Formatter, чтобы убедиться, что RedBeanPHP знает, что вы хотите использовать ID в качестве основного ключа:
Вы можете переименовать свой первичный ключ вашей таблицы в «id», затем Redbean может его идентифицировать. Если вы не хотите менять свою схему таким образом, вам нужно отформатировать компонент и вернуть соответствующий идентификатор:
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