我的mysql DB中有以下表格
我有一个模型Shipment
,我正在使用Phalcon的ORM与我的数据库进行交互。此表中的master_id
字段实际上是另一个原始的id
,但在同一个表中,如图所示。 id = 1是主货件,id = 2,id = 3是Subshipments。
我的模特现在看起来像这样
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);
时,我可以看到master_id
的{{1}}。
我想要的是,从我的Shipment
模型中调用另一个函数,以便将所有Shipment
检索为SubShipments
模型的集合,或者至少检索一个带{的数组{1}}模型。
或者甚至更好,如果Shipment
可以自动填充Shipment
(如果有的话)将是最好的!
我真的不知道我所拥有的ShipmentModel::findFirst($id);
是否正确,所以如果有人能告诉我如何继续,我将不胜感激:)
答案 0 :(得分:3)
您需要提供完整的命名空间,而不仅仅是类名,才能解决此问题Model 'Shipment' could not be loaded
。最好是添加别名:
$this->hasMany(
'id',
Shipment::class,
'master_id',
['alias' => 'subShipments'])
);
然后使用:
Shipment::findFirst()->getSubShipments()
您可以根据需要添加此类方法并执行return $this->getRelated('subShipments')