Phalcon ORM 字段与同一 table 中的另一个字段有关系
Phalcon ORM field has relation with another field in same table
我的 mysql 数据库中有以下 table
我有一个模型 Shipment
,我正在使用 Phalcon 的 ORM 与我的数据库进行交互。这个table中的master_id
字段实际上是另一个raw的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);
时,我可以看到 Shipment
的 master_id
。
我想要的是,从我的 Shipment
模型中调用另一个函数,以便检索所有 SubShipments
作为 Shipment
模型的集合,或者至少是一个数组有 Shipment
个模型。
或者更好,如果 ShipmentModel::findFirst($id);
可以自动填充 SubShipments
(如果有的话)那就最好了!
我真的不知道那边的 $this->hasMany
是否正确,所以如果有人能告诉我如何继续,我将不胜感激:)
您需要提供完整的命名空间,而不仅仅是 class 名称 - 才能解决这个 Model 'Shipment' could not be loaded
。最好是添加别名:
$this->hasMany(
'id',
Shipment::class,
'master_id',
['alias' => 'subShipments'])
);
然后只需使用:
Shipment::findFirst()->getSubShipments()
如果你愿意,你可以添加这样的方法return $this->getRelated('subShipments')
我的 mysql 数据库中有以下 table
我有一个模型 Shipment
,我正在使用 Phalcon 的 ORM 与我的数据库进行交互。这个table中的master_id
字段实际上是另一个raw的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);
时,我可以看到 Shipment
的 master_id
。
我想要的是,从我的 Shipment
模型中调用另一个函数,以便检索所有 SubShipments
作为 Shipment
模型的集合,或者至少是一个数组有 Shipment
个模型。
或者更好,如果 ShipmentModel::findFirst($id);
可以自动填充 SubShipments
(如果有的话)那就最好了!
我真的不知道那边的 $this->hasMany
是否正确,所以如果有人能告诉我如何继续,我将不胜感激:)
您需要提供完整的命名空间,而不仅仅是 class 名称 - 才能解决这个 Model 'Shipment' could not be loaded
。最好是添加别名:
$this->hasMany(
'id',
Shipment::class,
'master_id',
['alias' => 'subShipments'])
);
然后只需使用:
Shipment::findFirst()->getSubShipments()
如果你愿意,你可以添加这样的方法return $this->getRelated('subShipments')