У меня есть 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.
Любые мысли о том, что здесь происходит, или указатели на диагностику? Я коротко отзываюсь о замечательном Париже/Идиорме.
С учетом alttag ошибка была просто отсутствующими скобками после → save() - не выдавала ошибку или предупреждение. Проблема решена, спасибо..
save
в классе, а не в функции. Idiorm использует метод __get()
поэтому PHP выглядит так, как будто это свойство существует, даже если его нет.
var_dump($person);
дать тебе?$person->save()
?