Почему Paris / Idiorm не сохраняет вкладыши?

0

У меня есть idiorm/paris, установленный в приложении Slim PHP API. Он не бросает ошибки и не работает для базовых выборок, но я не могу получить вставки/обновления для работы и застрял в диагностике.

Следующая таблица в postgresql:

CREATE TABLE distributors (
    id     integer,
    name    varchar(40)
);

Настройка идиома:

ORM::configure('pgsql:host=' . $config['dbserver'] . ';dbname=' . $config['dbname']);
ORM::configure('username', $config['dbuser']);
ORM::configure('password', $config['dbpass']);
ORM::configure('logging', $config['debug']);

Это работает:

ORM::for_table('users')->raw_query("INSERT INTO distributors (id,name) VALUES (2,'rich')")->find_many();

Создайте модель:

<?php
class Distributors extends Model {
}

Это выполняется без ошибок - но запись не добавлена в db

 $person = Model::factory('Distributors')->create();
 $person->set('id', 3 );
 $person->set('name', 'rich');
 $person->save;

Это немедленно выполняется, возвращает значение null

 ORM::get_last_query()

Я использую Paris 1.5.4, Slim 2. * и PHP 5.6.2.

Любые мысли о том, что здесь происходит, или указатели на диагностику? Я коротко отзываюсь о замечательном Париже/Идиорме.

  • 0
    Что делает var_dump($person); дать тебе?
  • 2
    Скобки после $person->save() ?
Показать ещё 1 комментарий
Теги:
idiorm

1 ответ

1

С учетом alttag ошибка была просто отсутствующими скобками после → save() - не выдавала ошибку или предупреждение. Проблема решена, спасибо..

  • 0
    Причина, по которой это не приводит к ошибке, заключается в том, что PHP выглядит так, как будто вы обращаетесь к свойству, save в классе, а не в функции. Idiorm использует метод __get() поэтому PHP выглядит так, как будто это свойство существует, даже если его нет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню