where('type', '=', $model->getMorphClass()); $table = $model->getTable(); if ($model instanceof Page) { $builder->leftJoin('entity_page_data', 'entity_page_data.page_id', '=', "{$table}.id"); } else { $builder->leftJoin('entity_container_data', function (JoinClause $join) use ($model, $table) { $join->on('entity_container_data.entity_id', '=', "{$table}.id") ->where('entity_container_data.entity_type', '=', $model->getMorphClass()); }); } } }