Вызов функции-члена getAllHash - PullRequest
1 голос
/ 19 сентября 2011

Я пытаюсь запустить пример кода, доступного на сайте atk4.Скачал код, создал модели и страницу создания.Однако, когда я попытался сгенерировать SQL, используя http://localhost/demo/atk4-example/?page=generate,, я получил следующую ошибку в журнале ошибок Apache:

[Mon Sep 19 21:35:31 2011] [error] [client 127.0.0.1] PHP Fatal error:  Call to a member function getAllHash() on a non-object in /var/www/html/demo/atk4-example/atk4-addons/mvc/Page/SchemaGenerator.php on line 69, referer: http://localhost/demo/atk4-example/?page=generate

Вот модели:

Category.php:

class Model_Category extends Model_Table {
    public $entity_code = 'category_table';
    public $table_alias = 'ct';
    function init(){
        parent::init();

        $this->addField('name');
    }
}

Job.php:

class Model_Job extends Model_Table {
    public $entity_code = 'job_table';
    public $table_alias = 'jt';
    function init(){
        parent::init();
        $this->addField('category_id')->refModel('Model_Category');
        $this->addField('type');
        $this->addField('company');
        $this->addField('logo');
        $this->addField('url');
        $this->addField('position');
        $this->addField('location');
        $this->addField('description')->type('text');
        $this->addField('how_to_apply')->type('text');
        $this->addField('is_public')->type('boolean');
        $this->addField('is_activated')->type('boolean');
        $this->addField('email');
        $this->addField('token');
        $this->addField('created_dts')->type('timestamp')->system(true);
        $this->addField('updated_dts')->type('timestamp')->system(true);
        $this->addField('expires_at')->type('date')->system(true);
    }
}

page / generate.php:

class page_generate extends Page_SchemaGenerator {}

Мне не хватает некоторых настроек пути?

1 Ответ

2 голосов
/ 19 сентября 2011
Call to a member function getAllHash() on a non-object in
/var/www/html/demo/atk4-example/atk4-addons/mvc/Page/SchemaGenerator.php
on line 69

и эта строка

$res = $this->api->db->getAllHash("desc $table");

означает, что $this->api->db не является объектом.
Посмотрите на atk4-example / page / dbtest.php. Он вызывает $this->api->dbConnect();, что, вероятно, устанавливает свойство api-> db.

...