繁体   English   中英

ATK4自动完成问题

[英]ATK4 Autocomplete issue

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

情况是我定义了一个模型:

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'));

    }
}

然后在我的页面上:

    $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

附加信息:

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

有人可以帮我吗?

您是在谈论这个附加组件,对: https : //github.com/atk4/autocomplete

似乎是PathFinder无法找到命名空间插件的适当位置的问题。 请在此处发布API_Frontend类的一部分,在其中向路径查找器添加其他位置,并告诉我有关您的文件夹结构的更多信息(在该文件夹中放置了自动完成加载项文件)。

ATK 4.2.4版本不是最后一个。 您可以尝试将ATK升级到版本4.2.5吗? 它尚未正式发布,但可以在GitHub master分支中找到: https//github.com/atk4/atk4 我希望一切都可以在4.2.5版本中使用,但如果不能,那么我将帮助您解决此问题。

还有一件事-如果要手动创建表单字段,则需要为该$ client字段设置Model。 我猜可以用$ client-> setModel('Agenda');来完成。


编辑:正确答案

排队

$client=$form->addField('autocomplete','studentid');

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

$client=$form->addField('autocomplete/Basic', 'studentid');

需要注意的另一件事是使用小写的函数名。 因此,请使用set()代替Set() set()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM