【问题标题】:symfony 1.4: question about accessing a child class from a parent classsymfony 1.4:关于从父类访问子类的问题
【发布时间】:2010-12-06 12:18:28
【问题描述】:

我有这个架构:

  shop_products:
    _attributes: { phpName: ShopProduct }
    products_id: { phpName: Id, type: INTEGER, size: '11', primaryKey: true, autoIncrement: true, required: true }
    products_quantity: { phpName: Quantity, type: INTEGER, size: '4', required: true }
    products_model: { phpName: Model, type: VARCHAR, size: '12', required: false }
    products_image: { phpName: Image, type: VARCHAR, size: '64', required: false }
    products_price: { phpName: Price, type: DECIMAL, size: '15', scale: '4', required: false, defaultValue: '0.0000' }
    products_date_added: { phpName: DateAdded, type: TIMESTAMP, required: true }
    products_last_modified: { phpName: LastModified, type: TIMESTAMP, required: false }
    products_date_available: { phpName: DateAvailable, type: TIMESTAMP, required: false }
    products_weight: { phpName: Weight, type: DECIMAL, size: '5', scale: '2', required: true }
    products_carati: { phpName: Carati, type: FLOAT, required: false, defaultValue: '1' }
    products_status: { phpName: Status, type: TINYINT, size: '1', required: true }
    manufacturers_id: { phpName: ManufacturerId, type: INTEGER, size: '11', required: false, foreignTable: shop_manufacturers, foreignReference: manufacturers_id, onDelete: SETNULL }
    products_ordered: { phpName: Ordered, type: INTEGER, size: '11', required: true, defaultValue: '0' }


  shop_categories:
    _attributes: { phpName: ShopCategory }
    categories_id: { phpName: Id, type: INTEGER, size: '11', primaryKey: true, autoIncrement: true, required: true }
    categories_image: { phpName: Image, type: VARCHAR, size: '64', required: false }
    parent_id: { phpName: ParentId, type: INTEGER, size: '11', required: true, defaultValue: '0', foreignTable: shop_categories, foreignReference: categories_id, onDelete: CASCADE, onUpdate: CASCADE }
    sort_order: { phpName: SortOrder, type: INTEGER, size: '3', required: false }
    date_added: { phpName: DateAdded, type: TIMESTAMP, required: false }
    last_modified: { phpName: LastModified, type: TIMESTAMP, required: false }



  shop_categories_description:
    _attributes: { phpName: ShopCategoryDescription }
    categories_id: { phpName: CategoryId, type: INTEGER, size: '11', primaryKey: true, required: true, defaultValue: '0', foreignTable: shop_categories, foreignReference: categories_id, onDelete: CASCADE, onUpdate: CASCADE }
    language_id: { phpName: LanguageId, type: INTEGER, size: '11', primaryKey: true, required: true, defaultValue: '1', foreignTable: culture, foreignReference: id, onDelete: CASCADE, onUpdate: CASCADE }
    categories_name: { phpName: Name, type: VARCHAR, size: '32', required: true }

然后,我从 ShopProducts 模型创建了一个管理模块,但是当我尝试访问它时,它显示:

类“ShopCategory”必须实现 要呈现的“__toString”方法 一个“sfWidgetFormPropelChoice”小部件

如您所见,类别名称所在的模型是 ShopCategoriesDescription。那么,如何从 ShopCategory 模型类中获取类别名称?

哈维尔

sf 1.4/推进

【问题讨论】:

    标签: symfony1 propel


    【解决方案1】:

    这是一个标准错误,与父/子关系无关。您通常只需在 lib/model 文件夹中的 ShopCategory.php 文件中添加一个 __toString() 方法

    public function __toString()
    {
        return $this->getCategoryName();
    }
    

    现在,既然您已经从 shop_category 表中提取了类别名称,您需要创建一个函数来获取 shop_categories_description ,它是 shop_category 的子项并且是正确的文化,以便您可以返回一个类别名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多