相关数据& displayField cakephp

时间:2013-11-13 18:39:14

标签: cakephp cakephp-2.0

我有货运,订单和用户。当我尝试设置新货件时,订单displayField正在我的选择下拉列表中正确显示为标签。用户虽然只显示用户的实际ID而不是displayField。

我做错了什么?我正在使用管理脚手架。这是问题吗?

class Shipment extends ShipmentsAppModel {
  public $belongsTo = array('Order', 'User');
}

class Order extends AppModel {
  public $belongsTo = array('User');
  public $name = 'Order';
  public $displayField = 'title';
}
class User extends UsersAppModel {
public $displayField = 'email';
}

2 个答案:

答案 0 :(得分:0)

看到,UsersAppModel延伸到User。根据CakePHP惯例,它应该AppModelOrder正在扩展AppModel,其工作正如您所期望的那样。

尝试使用AppModel代替UsersAppModel$displayField自动继承自AppModel,它是一个神奇变量,在CakePHP核心中定义,默认为id字段。重新使用我们模型中的变量,我们只重写该值,这里AppModel是链接器。

但是,我认为UsersAppModel与像AppModel这样的CakePHP核心模型继承没有关系,这就是问题所在。

所以而不是

class User extends UsersAppModel {
   public $displayField = 'email';
}

使用

class User extends AppModel {
   public $displayField = 'email';
}

答案 1 :(得分:0)

首先检查您的代码语法

应该是

class Shipment extends AppModel {}

class User extends AppModel{}