我的 mysql 数据库中有下表
我有一个模型 Shipment
我正在使用 Phalcon 的 ORM 与我的数据库进行交互。 master_id
此表中的字段实际上是 id
另一个原始的,但在同一张 table 上,正如您在图片中看到的那样。 id=1 是主装运,id=2 和 id=3 是子装运。
我现在的模型是这样的
class Shipment extends Model
{
protected $id;
protected $hawb;
protected $master_id;
public function initialize()
{
parent::initialize();
$this->hasMany(
'id',
'Shipment',
'master_id'
);
}
//setters and getters are here
}
当我使用 $shipment = ShipmentModel::findFirst($id);
时在我的 Controller 中,我可以看到 master_id
的 Shipment
.
我想要的是,从我的 Shipment
调用另一个函数模型以检索所有 SubShipments
作为 Shipment
的集合模型,或者至少是一个带有 Shipment
的数组楷模。
或者更好,如果 ShipmentModel::findFirst($id);
可以填充 SubShipments
自动(如果有的话)最好!
我真的不知道 $this->hasMany
我在那边是正确的,所以如果有人能告诉我如何继续,我将不胜感激:)
最佳答案
您需要提供完整的命名空间,而不仅仅是类名 - 以解决此无法加载模型“Shipment”
。最好是添加别名:
$this->hasMany(
'id',
Shipment::class,
'master_id',
['alias' => 'subShipments'])
);
然后只需使用:
Shipment::findFirst()->getSubShipments()
如果需要,您可以添加这样的方法并执行 return $this->getRelated('subShipments')
关于php - Phalcon ORM 字段与同一表中的另一个字段有关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50640140/