首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ATK4自动完成问题

ATK4自动完成问题
EN

Stack Overflow用户
提问于 2014-04-22 20:30:41
回答 1查看 116关注 0票数 0

我是ATK4的新手。我正在尝试实现一个自动完成字段,但是当我尝试定义这个字段时,我只遇到了一个错误。我在ATK4的最新版本(4.2.4)的MAC上运行所有程序。所有其他函数(字段类型)似乎都工作得很好,但是当我定义一个autocomplete类型的字段时,我得到了与在示例中看到的相同的错误:http://codepad.agiletoolkit.org/autocomplete

案例是我定义了一个模型:

代码语言:javascript
复制
class Model_Agenda extends Model_Table {
    public $entity_code='Agenda';
    function init(){
        parent::init();

        $this->addField('DATE');
        $this->addField('TIME');
        $this->addField('DRIVERID');
        $this->addField('STUDENTID');
        $this->hasOne('STUDENTID')->display(array('form'=>'autocomplete/Basic'));

    }
}

然后在我的页面上:

代码语言:javascript
复制
    $form = $this->add('Form');
    $form->addField('ReadOnly','Date')->Set($_GET['date']);
    $form->addField('ReadOnly','Time')->Set($_GET['time']);
    $form->addField('ReadOnly','Driver')->Set($_GET['driverid']);       
    $client=$form->addField('autocomplete','studentid');

一些简单的东西,但是没有什么,我不能得到自动补全字段,我曾经得到一个错误,说"autocomplete.php“不存在(实际上这个文件不存在,我试图下载github模块,但是那个模块包括这个文件),不管怎样,我得到的错误是:

Exception_PathFinder,代码:0

其他信息:

代码语言:javascript
复制
file: Form/Field/Autocomplete.php
type: php
attempted_locations:
0: /Library/WebServer/Documents/rutas/lib/Form/Field/Autocomplete.php
1: /Library/WebServer/Documents/rutas/atk4/lib/Form/Field/Autocomplete.php
2: /Library/WebServer/Documents/rutas/atk4-addons/mvc/Form/Field/Autocomplete.php
3: /Library/WebServer/Documents/rutas/atk4-addons/misc/lib/Form/Field/Autocomplete.php
class: Form_Field_Autocomplete
namespace:
orig_class: Form_Field_Autocomplete
/Library/WebServer/Documents/rutas/atk4/lib/PathFinder.php:207

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-22 23:05:23

你说的是这个附加组件,对吧:https://github.com/atk4/autocomplete

看起来是PathFinder找不到命名空间插件的合适位置的问题。请在这里张贴你的API_Frontend类的一部分,你在这里添加额外的位置到探路器,也告诉我更多关于你的文件夹结构(在哪个文件夹中你放置了自动完成附加文件)。

ATK 4.2.4版本不是最新版本。您可以尝试将ATK升级到4.2.5版本吗?它还没有正式发布,但可以在https://github.com/atk4/atk4的GitHub主分支中找到。我希望所有的东西都能在4.2.5版本下工作,但如果不能,我会帮你解决这个问题。

还有一件事-如果您手动创建表单域,那么您需要为该$client域设置模型。我想这可以用$client->setModel(‘Agenda’)来完成;

编辑:正确答案

在队列中

代码语言:javascript
复制
$client=$form->addField('autocomplete','studentid');

您应该使用如下名称空间编写完整的自动完成字段类名称:

代码语言:javascript
复制
$client=$form->addField('autocomplete/Basic', 'studentid');

另一件需要注意的事情是使用小写的函数名。所以不使用Set(),而使用set()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23219664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档