2017-01-31 9 views
0

Я не могу получить box() метод работы, я получаю только NULL.RedBean возвращает null при распаковке модели из bean-компонента?

Например, если я делаю это

$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 

Очевидно есть данные в компоненте, так почему box() возвращение NULL?

ответ

0

Кажется, это была проблема с именами.

documentation говорит, что

Если вы хотите ваши модели жить в пространстве имен \ Model, вы можете установить следующую константу:

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

Теперь вы можете создать класс модели, как это :

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

Фраза»... ты может комплект ... "заставило меня поверить, что это необязательно. Тем не менее, оказывается, что если вам нравятся ваши модели для размещения в пространстве имен \ Model, и вы хотите использовать методы FUSE, вы должны указать MUST, указав указанную константу, и вы ДОЛЖНЫ позвонить классу модели Band.

Кроме того, обратите внимание, что вы используете MUST использовать двойную обратную косую черту (\\) везде, когда вы определяете эту строку пространства имен.

 

Чтобы добавить к путанице, прямо перед вышеуказанной документации пункта, есть пункт говоря

RedBeanPHP автоматически соединяет фасоль с моделями, использующими именовании (т.е. Model_ {TYPE боба }).

По-видимому, вы должны использовать именование Model_Band когда НЕ с помощью пространств имен, и соглашение об именах Band когда вы делаете, или вещи ломаются.

 Смежные вопросы

  • Нет связанных вопросов^_^