2013-08-17 34 views
0

我想在敏捷工具包中使用自動完成插件(我對此仍然非常陌生,但它似乎非常適合我的需求)。自動完成基本工作,但是當我使用Plus並按下加號按鈕時,出現連接到沒有模型組的錯誤。在Plus源代碼中應該使用自我模型 - 但我不明白應該如何設置自動填充表單的模型。Agiletoolkit:Autocomplete/Plus錯誤:null model

這是堆棧跟蹤的重要組成部分,我想:

  • Frontend_page_form:形式 - >則setModel(NULL)
  • Frontend_createquestions_form_question_id: 自動完成\ Form_Field_Plus->自動完成{閉合}(對象(頁))

這是我的模型:

class Model_QuestionInCollection extends Model_Table { 
public $entity_code='questionincollection'; 
function init(){ 
    parent::init(); 
    $this->hasOne('Question')->display(array('form'=>'autocomplete/Plus')); 

這是代碼:

$form=$this->add('Form'); 
$form->setModel('QuestionInCollection'); 

---編輯

我最終改變自動完成的模型,而現在它的作品,顯示出什麼是錯在原「$自我>模型「 - 但當然不能一概而論。我做了一些額外的變化(以使新的記錄沒有顯示在自動完成場),所以自動完成/再加上現在是這樣的:

<?php 
namespace autocomplete; 

class Form_Field_Plus extends Form_Field_Basic 
{ 
    function init() 
    { 
    parent::init(); 
    $self = $this; 

    $f = $this->other_field; 

    // Add buttonset to name field 
    $bs = $f->afterField()->add('ButtonSet'); 

    // Add button - open dialog for adding new element 
    $bs->add('Button') 
     ->set('+') 
     ->add('VirtualPage') 
     ->bindEvent('Add New Record', 'click') 
      ->set(function($page)use($self) { 
     $model=$this->add('Model_Question'); 
     $form = $page->add('Form'); 
       $form->setModel($model); //Was: $self->model 
       //Would be nice if it worked...: $form->getElement($model->title_field)->set($self->other_field->js()->val()); 
       if ($form->isSubmitted()) { 
        $form->update(); 
        $js = array(); 
        $js[] = $self->js()->val($form->model[$model->id_field]); 
        $js[] = $self->other_field->js()->val($form->model[$model->title_field]); 
        $form->js(null, $js)->univ()->closeDialog()->execute(); 
       } 
      }); 
} 

}

+0

更好地使用$ title而不是$ entity_code,因爲不推薦使用$ entity_code。目前這不會改變任何事情,但在某個時候$ entity_code將被完全刪除。 – DarkSide

+0

我會在接下來幾天看看這個問題,並在需要時進行修復。順便說一句,你使用Github的最新版本的ATK和Autocomplete插件嗎?如果沒有,請嘗試。 – DarkSide

+0

謝謝。是的,我使用Github上的插件。這可能只是我不理解如何實現加號版本。 – jeppeb

回答

0

下面是使用自動完成上一個例子:http://codepad.demo.agiletech.ie/interactive-views/autocomplete

您可以手動創建表單並將該字段與模型鏈接。

如果工作正常,您可以繼續嘗試並獲得您自己的示例工作。這似乎是好的,應該在理論上工作。

+0

感謝您的回答!自動完成/基本工作正常。問題是自動完成/加號 - 我不知道如何在使用另一個模型(QuestionInCollection)時使它在所用模型(問題)中保存新記錄。 – jeppeb