我的mysql数据库中有下表
php - Phalcon ORM字段与同一表中的另一个字段相关-LMLPHP
我有一个模型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_idShipment
我想要的是,从我的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/

10-10 03:59