Skip to content

empty result when using has() and whereHas() on mongodb relation #1807

Closed
@sgimmai

Description

@sgimmai

Laravel: v5.8.18
Jenssengers: v3.5.1
mongodb/mongodb: v1.4.2
php: v7.1.30

My code:

use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class AuditTrail extends Eloquent{
    protected $connection = 'mongodb';
    protected $collection = 'audit_trails';
    public $timestamps = [
        'created_at'
    ];
    ...
    public function purchaseorder()
    {
        return $this->hasMany('\PurchaseOrder', 'Purchase Order Number', 'Customer PO');
    }
    ...
}
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class PurchaseOrder extends Eloquent{
    protected $connection = 'mongodb';
    protected $collection = 'purchase_orders';
    public $timestamps = [
        'created_at'
    ];
    ...
    public function audittrail()
    {
        return $this->hasMany('\AuditTrail', 'Customer PO', 'Purchase Order Number');
    }
    ...
}

PurchaseOrder::has('audittrail')->get() always returns an empty collection. I've tried swapping the relationship keys with the same results.

However, when querying on HybridRelationsPurchaseOrder::has('upload')->get() it works as expected.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions