我是ATK4的新手。 我试图实现自动填充字段,但是当我尝试定义字段时,我只有一个错误。 我用ATK4的最后一个版本(4.2.4)在MAC上运行。所有其他函数(字段类型)似乎都运行良好,但是当我定义自动填充类型的字段时,我得到了我在示例中看到的相同错误: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
有人可以帮我吗?
答案 0 :(得分:1)
您正在谈论此附加组件,对:https://github.com/atk4/autocomplete?
看起来像PathFinder的问题无法找到命名空间插件的适当位置。 请在此处发布您的API_Frontend类的一部分,其中您将其他位置添加到路径查找器,并告诉我有关您的文件夹结构的更多信息(在哪个文件夹中放置了自动完成附加文件)。
ATK 4.2.4版本不是最后一个。你能尝试将ATK升级到版本4.2.5吗?它没有正式发布,但可以在GitHub主分支中找到: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()
。