еще одно неизвестное свойство записи / связанный компонент - PullRequest
0 голосов
/ 05 ноября 2011

я этот класс Symfony Recepciones, который связан с классом Obras_Sociales_Recepciones, как утверждают мои классы BaseRecepciones:

   /* @method Recepciones          setRecepcionId()                       Sets the current record's "recepcion_id" value
    * @method Recepciones          setCuentaLaboratorioId()               Sets the current record's "cuenta_laboratorio_id" value
    * @method Recepciones          setCuentasLaboratorios()               Sets the current record's "Cuentas_Laboratorios" value
    * @method Recepciones          setObrasSocialesRecepciones()          Sets the current record's "Obras_Sociales_Recepciones" collection
    */
        abstract class BaseRecepciones extends sfDoctrineRecord
        {
            public function setTableDefinition()
            {
                $this->setTableName('Recepciones');
                $this->hasColumn('recepcion_id', 'integer', 4, array(
                     'type' => 'integer',
                     'fixed' => 0,
                     'unsigned' => true,
                     'primary' => true,
                     'autoincrement' => true,
                     'length' => 4,
                         ));
                $this->hasColumn('cuenta_laboratorio_id', 'integer', 4, array(
                     'type' => 'integer',
                     'fixed' => 0,
                     'unsigned' => true,
                     'primary' => false,
                     'notnull' => true,
                     'autoincrement' => false,
                     'length' => 4,
                     ));


            }

            public function setUp()
            {
                parent::setUp();
                $this->hasOne('Cuentas_Laboratorios', array(
                     'local' => 'cuenta_laboratorio_id',
                     'foreign' => 'cuenta_laboratorio_id'));

                $this->hasMany('Obras_Sociales_Recepciones', array(
                     'local' => 'recepcion_id',
                     'foreign' => 'recepcion_id'));
            }
        }

однако .. когда я делаю это для действия

$recepcionPrueba = new Recepciones();
$recepcionPrueba->setObrasSocialesRecepciones($myObject);

говорит:

Неизвестное свойство записи / связанный компонент "obras_sociales_recepciones" в "Recepciones"

любые идеи ????большое спасибо

Ответы [ 4 ]

5 голосов
/ 09 ноября 2011

Я наконец обнаружил, что произошло, я надеюсь, что это поможет кому-то сэкономить два или три дня, которые понадобились мне, чтобы понять это.

Доктрина 1.2 принимает только два типа обозначений для имен таблиц

CamelCase Или примечание с подчеркиванием.Внутренне он распознает любого из них и способен преобразовывать первое во второе и наоборот.

В моем случае, если мое имя таблицы называлось "obras_sociales_recepciones" или "ObrasSocialesRecepciones", этоошибка никогда бы не произошла.

дело в том, что в Doctrine 1.2 вы не должны никогда не использовать сочетание нотации CamelCase и подчеркивания , это в моем примере Obras_Sociales_Recepciones, это абсолютно сбивает с толку ORMи вы можете получить эту странную ошибку и никогда не узнаете, почему!

0 голосов
/ 05 ноября 2011

Не используйте множественные названия при выборе названия вашей модели (в вашем случае вы должны использовать Recepcion).Не могли бы вы опубликовать комментарий, который находится непосредственно перед BaseRecepciones?Хорошее имя метода должно быть в этом комментарии, я думаю, это что-то странное, вроде setObrasSocialesRecepcioness() с 2 's'

0 голосов
/ 07 ноября 2011

Это один ко многим, поэтому вы не делаете:

$recepcionPrueba->setObrasSocialesRecepciones($myObject);

Вы делаете

$recepcionPrueba->addObrasSocialesRecepciones($myObject);

Вы называете «набор» один на один.

0 голосов
/ 05 ноября 2011

Просто предположение, так как я являюсь пользователем Propel ... это поможет переместить parent::setUp() в конец метода setUp? Мне интересно, что родитель делает с отношениями, и не может, если вы определите их после вызова родителя.

...