我發現CRUD和hasOne()中存在一個問題,其中$ display_field在「添加」表單中被忽略。如果引用的模型具有「名稱」字段,則CRUD的添加表單中的下拉菜單將正確填充。但是,如果hasOne()模型使用$ display_field參數,我希望添加表單顯示指定的字段,但它不。它只會顯示引用模型的'name'字段或'id',而不是$ display指定的字段。但是,添加條目後,將使用正確的$ display_field來顯示條目。所以這個問題在Add操作的某個地方。
例如:
作者
class Model_Author extends Model_Table {
public $table='author';
function init(){
parent::init();
$this->addField('long_name');
$this->addField('DOB');
}
}
書
class Model_Book extends Model_Table {
public $table='book';
function init(){
parent::init();
$this->addField('title');
$this->hasOne('Author', 'author_id', 'long_name');
}
}
CRUD頁面。
class page_manager extends Page {
function init() {
parent::init();
$tabs=$this->add('Tabs');
$crud=$tabs->addTab('Book')->add('CRUD');
}
}
當您選擇添加按鈕時,作者字段將在作者表中顯示作者的ID號。但是,添加Book條目後,將使用正確的字段(即long_name)來顯示現有條目。
乾杯
這看起來像一個錯誤。請在這裏報告:https://github.com/atk4/atk4/issues – romaninsh
好吧,我已經將問題添加到git hub。乾杯。 – LostInTheWeb
Model_Author中是否缺少'$ title_field'這個問題? –