【发布时间】:2017-10-23 12:30:28
【问题描述】:
我在一个名为 Supplier 的模型和一个名为 SupplierMeta 的模型之间建立了一个 hasMany 关系。
SupplierMeta 链接到具有以下结构的表:
id, supplier_id, name, value
并且 Supplier 模型定义了以下关系:
public function meta() {
return $this->hasMany('Model\SupplierMeta');
}
关系本身工作正常,但我想做的是定义另一个函数,通过“名称”字段在该关系中搜索并返回值。我希望它以这种格式工作:
$supplier->meta->field_name, or $supplier->meta()->field_name
这将返回相关 SupplierMeta 对象的“值”字段(如果存在),否则返回 false。这可能吗?
【问题讨论】:
-
你试过什么?您应该能够在新方法中使用
$this->meta()作为查询。请记住meta是一个集合,meta()是一个查询构建器对象。 -
基本上,我希望将关系 ->meta 视为一个对象,其键是根据 SupplierMeta 的“名称”列设置的,如果这有意义的话。因此,如果我运行 $supplier->meta->field_name 它将返回一个 SupplierMeta 对象,其中“name”属性设置为“field_name”的值。
标签: php laravel eloquent relationship