我的mysql数据库中有下表
我有一个模型Shipment
,我正在使用Phalcon的ORM与我的数据库交互。这个表中的master_id
字段实际上是另一个raw的id
字段,但是在同一个表中,如图所示。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);
时,我可以看到master_id
的Shipment
。我想要的是,从我的
Shipment
模型调用另一个函数,以便检索所有的SubShipments
作为Shipment
模型的集合,或者至少是具有Shipment
模型的数组。或者更好,如果
ShipmentModel::findFirst($id);
可以自动填充SubShipments
(如果有的话)将是最好的!我真的不知道那边的
$this->hasMany
是否正确,所以如果有人能告诉我如何继续,我将不胜感激:) 最佳答案
您需要提供完整的名称空间,而不仅仅是类名-来解决这个问题。最好是添加别名:
$this->hasMany(
'id',
Shipment::class,
'master_id',
['alias' => 'subShipments'])
);
然后使用:
Model 'Shipment' could not be loaded
如果您愿意,也可以添加这样的方法Shipment::findFirst()->getSubShipments()
关于php - Phalcon ORM字段与同一表中的另一个字段相关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50640140/