phalconorm字段与同一表中的另一个字段有关系

hs1ihplo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(272)

我的mysql数据库中有下表

我有个模特 Shipment 我正在用法尔康的orm和我的数据库进行交互。这个 master_id 此表中的字段实际上是 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 我的回答是正确的,所以如果有人能告诉我如何继续,我将不胜感激:)

t9eec4r0

t9eec4r01#

您需要提供完整的命名空间,而不仅仅是类名-来解决这个问题 Model 'Shipment' could not be loaded . 最好是添加别名:

$this->hasMany(
    'id',
    Shipment::class,
    'master_id',
    ['alias' => 'subShipments'])
);

然后使用: Shipment::findFirst()->getSubShipments() 如果您愿意,可以添加这样的方法 return $this->getRelated('subShipments')

相关问题