0

http://www.redbeanphp.comから事前にパッケージ化された 1 ファイルの Redbean 1.3 ORM を使用したいと思います。この方法で結果を取得しようとすると..

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 に代わる構成のない代替手段はありますか?

4

2 に答える 2

2

RedBeanPHP の ID は大文字と小文字が区別されるため、ID の代わりに「id」を使用する必要があります。または、Bean Formatter を使用して、ID を主キーとして使用する必要があることを RedBeanPHP が確実に認識できるようにする必要があります。

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

于 2011-06-15T14:02:08.180 に答える
0

テーブルの主キーの名前を「id」に変更すると、Redbean がそれを識別できます。そのようにスキーマを変更したくない場合は、Bean をフォーマットし、それに応じてカスタム ID を返す必要があります。

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

于 2014-02-22T02:06:33.480 に答える