Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 这是否也适用于CRUD?_File_Join_Crud_Traversal_Atk4 - Fatal编程技术网

File 这是否也适用于CRUD?

File 这是否也适用于CRUD?,file,join,crud,traversal,atk4,File,Join,Crud,Traversal,Atk4,我正在尝试创建一个新模型,该模型连接到表并使用CRUD显示它们,如下所示 我错过了什么?这对文件存储不起作用吗?b) 积垢?还是c) 有一个客户联系表: class Model_Contact extends Model_Table { public $table='customercontact'; function init(){ parent::init(); $this->addField('ContactDate')-

我正在尝试创建一个新模型,该模型连接到表并使用CRUD显示它们,如下所示

我错过了什么?这对文件存储不起作用吗?b) 积垢?还是c)

有一个客户联系表:

class Model_Contact extends Model_Table {
   public $table='customercontact';
       function init(){
          parent::init();

          $this->addField('ContactDate')->type('date')->caption('Contact Date');
          $this->addField('ContactNotes')->caption('Notes');

        }
}
还有一个contactattachments表:

class Model_ContactAttachments extends Model_Table {
       public $table='contactattachments';
           function init(){
              parent::init();

              $this->addField('ContactID');
              $this->add('filestore/Field_File','FilestoreID')->caption('Upload File');
           }
    }   
这是一个组合表,按照我所理解的示例:

class Model_Contact extends Model_Table {
   public $table='customercontact';
       function init(){
          parent::init();

          $this->addField('ContactDate')->type('date')->caption('Contact Date');
          $this->addField('ContactNotes')->caption('Notes');

          $detail = $this->join('ContactAttachments.ContactID');
          $detail->add('filestore/Field_File','FilestoreID')->caption('Upload File');

       }
}
导致此错误的原因:

应用程序错误:未为此对象定义方法

异常逻辑,代码:0

Additional information:

class: SQL_Relation
method: addExpression
arguments:
0: ContactAttachments.FilestoreID_text
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib\AbstractObject.php:846

Stack trace:
File        Object Name Stack Trace
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/BaseException.php  :63     Exception_Logic Exception_Logic->collectBasicData(Null)
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/AbstractObject.php :545    Exception_Logic Exception_Logic->__construct("Method is not defined for this object", Null)
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/AbstractObject.php :846    asol_index_tabs_view_htmlelement_4_crud_model_contact__C    SQL_Relation->exception("Method is not defined for this object", "Logic")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib\Field/Reference.php    :30     asol_index_tabs_view_htmlelement_4_crud_model_contact__C    SQL_Relation->__call("addExpression", Array(1))
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib\Field/Reference.php    :30     asol_index_tabs_view_htmlelement_4_crud_model_contact__C    SQL_Relation->addExpression("ContactAttachments.FilestoreID_text")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4-addons\filestore\lib\Field/File.php    :7  ead9409b__act__C_ContactAttachments.FilestoreID filestore\Field_File->setModel("filestore/File", "url")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/AbstractObject.php :306    ead9409b__act__C_ContactAttachments.FilestoreID filestore\Field_File->init()
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\lib\Model/Contact.php   :19     asol_index_tabs_view_htmlelement_4_crud_model_contact__C    SQL_Relation->add("filestore/Field_File", "ContactAttachments.FilestoreID")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/AbstractObject.php :306    asol_index_tabs_view_htmlelement_4_crud_model_contact   Model_Contact->init()
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/AbstractObject.php :400    asol_index_tabs_view_htmlelement_4_crud CRUD->add("Model_Contact")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/AbstractView.php   :92     asol_index_tabs_view_htmlelement_4_crud CRUD->setModel("Contact")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib\View/CRUD.php  :220    asol_index_tabs_view_htmlelement_4_crud CRUD->setModel("Contact")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\page/index.php  :29     asol_index_tabs_view_htmlelement_4_crud CRUD->setModel("Contact")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/AbstractObject.php :306    asol_index  page_index->init()
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/ApiFrontend.php    :130    asol    Admin->add("page_index", "index", "Content")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/ApiWeb.php :428    asol    Admin->layout_Content()
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/ApiFrontend.php    :39     asol    Admin->addLayout("Content")
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb\atk4\lib/ApiWeb.php :275    asol    Admin->initLayout()
C:\Program Files (x86)\EasyPHP-DevServer-13.1VC11\data\localweb/index.php   :15     asol    Admin->main()
Note: To hide this information from your users, add $config['logger']['web_output']=false to your config.php file. Refer to documentation on 'Logger' for alternative logging options

在join中,必须使用表名,而不是类名

function join($foreign_table, $master_field=null, $join_kind=null, $_foreign_alias=null,$relation=null){

你说的对:加入。。。非常感谢。这修复了连接:$detail=$This->join('contactattachments.ContactID','id');但是,当使用“add”试图让filestore在联接表上工作时,我仍然需要找出原始问题(方法未定义…)。它可以很好地处理主要的一点是,我希望能够将多个文件附加到一个联系人记录。使用addField()方法而不是add(),因为您正在尝试添加类,但需要添加字段。当我使用addField时,我只得到一个普通字段,而不是添加文件附件的按钮,就像我在其他地方使用filestore一样。谢谢。您并没有提到要将按钮添加到每一行(如果我理解正确的话)。我可能错了,但我认为您可以尝试向crud添加一列,比如$crud->addColumn('button','your_field_name','add file');。看来这样做是不可能的(至少现在是这样)。问题是,当您添加(filestore)时,也会创建addExpression(在filestore插件中)。并且不能在SQL_关系类中使用addExpression。您只能将(文件存储)添加到模型类。