<?php class Assignment extends Model { ... public function product() { return $this->belongsTo('App\Models\Product', 'global_products_id', 'global_products_id'); } ... class Product extends Model { ... public function assignment() { return $this->hasMany('App\Models\Assignment', 'global_products_id', 'global_products_id'); } ... $query = Assignment::where('prefix', $prefix)->with('product')->get(); $result = [ { "id": 1, "global_products_id": 7, "product": null <==== why? }, { "id": 2, "global_products_id": 30, "product": { "id": 30, "name": "---------", ... } }, ... ];