2017-01-31 59 views
0

我不能讓box()方法工作,我只從它得到NULLRedBean從bean拆箱模型時返回null?

例如,如果我這樣做

$bean = \R::load('comment', 2); 

print("\n\nBEAN:\n"); 
var_dump($bean); 

$model = $bean->box(); 

print("\n\nMODEL:\n"); 
var_dump($model); 

我得到這個

BEAN: 
class RedBeanPHP\OODBBean#68 (10) { 
    protected $properties => 
    array(4) { 
    'id' => 
    string(1) "2" 
    'user' => 
    string(1) "2" 
    'reply_to' => 
    NULL 
    'message' => 
    string(30) "Test comment 1" 
    } 
    protected $__info => 
    array(4) { 
    'type' => 
    string(7) "comment" 
    'sys.id' => 
    string(2) "id" 
    'sys.orig' => 
    array(5) { 
     'id' => 
     string(1) "2" 
     'user' => 
     string(1) "1" 
     'reply_to' => 
     NULL 
     'message' => 
     string(30) "Test comment 1" 
    } 
    'tainted' => 
    bool(false) 
    'changed' => 
    bool(false) 
    } 
    protected $beanHelper => 
    class RedBeanPHP\BeanHelper\SimpleFacadeBeanHelper#17 (0) { 
    } 
    protected $fetchType => 
    NULL 
    protected $withSql => 
    string(0) "" 
    protected $withParams => 
    array(0) { 
    } 
    protected $aliasName => 
    NULL 
    protected $via => 
    NULL 
    protected $noLoad => 
    bool(false) 
    protected $all => 
    bool(false) 
} 


MODEL: 
NULL 

很明顯,在bean的數據,所以爲什麼box()返回NULL

回答

0

似乎這是一個命名空間問題。

documentation

如果你喜歡你的模型駐留在命名空間\型號,您可以設置以下常數:

//with namespace Model 
    define('REDBEAN_MODEL_PREFIX', '\\Model\\') 

現在,您可以創建這樣一個模型類:

class \Model\Band extends \RedBeanPHP\SimpleModel { ... } 

的措辭」 ......你可以設置......「讓我相信它是可選的。然而事實證明,如果你喜歡你的模型駐留在命名空間\ Model中,並且你希望能夠使用FUSE方法,你可以設置上述常量,並且你可以調用你的模型類Band

此外,請注意,您在定義該名稱空間字符串時,無處不在使用雙反斜槓(\\)。

 

爲了增加混亂,上面的文檔段前右側,有一個段落說

RedBeanPHP自動使用一個命名約定款連接豆(即Model_豆{TYPE })。

顯然,當你這樣做,或事物打破你應該使用使用命名空間的命名約定Model_Band,並命名慣例Band