必须指定MVCForm Agile Toolkit表单更新记录ID

时间:2012-09-11 04:33:22

标签: frameworks atk4 php agiletoolkit

希望关于Agle Toolkit的简单问题。目前使用以下代码获取

  

AJAX响应错误:SyntaxError:意外的标记<

     

BaseException

     

必须指定记录ID,否则使用loadAny()

页\ grant.php

<?php
class page_grant extends Page {
    function init(){
        parent::init();

        $saveForm=$this->add('MVCForm');
        $model=$this->add('Model_Grant')->load($_GET['id']);
        $saveForm->setModel($model);

        $saveForm->addSubmit();

        $saveForm->onSubmit(function($saveForm){
            $saveForm->update()->js()->univ()->successMessage('Grant info saved.')->execute();
        });
    }
}

和Model_Grant:

<?php

class Model_Grant extends Model_Table {
    public $table='minigrant';

    function init() {
        parent::init();
        $this->addField('grant_number');
        $this->addField('grant_name');
        $this->addField('uid');
    }
}

数据已正常加载,但无法按照上述错误消息将其保存回来。

1 个答案:

答案 0 :(得分:1)

您必须将stickyGET添加到id字段:

<?php
class page_grant extends Page {
    function init(){
        parent::init();

        $this->api->stickyGET('id');

        $saveForm=$this->add('MVCForm');
        $model=$this->add('Model_Grant')->load($_GET['id']);
        $saveForm->setModel($model);

        $saveForm->addSubmit();

        $saveForm->onSubmit(function($saveForm){
            $saveForm->update()->js()->univ()->successMessage('Grant info saved.')->execute();
        });
    }
}

发现数据: http://agiletoolkit.org/learn/tutorial/jobeet/day8

Agile Toolkit确实需要一个文档源,其中包含更多这样的示例,因为它很容易在我使用过的最佳框架上。

如果他们(@romaninsh)可以更好地完成文档,那么我认为它会做得更好。我想他们可能也需要从AGPL更改许可证,但是因为我正在开发OSS,所以对我个人而言更重要。