我发现 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)用于显示现有条目。
干杯