Tengo una relación de muchos a muchos entre “products” y “categories”, puedo obtener datos de esta relación a partir de su nombre en el modelo en el que me encuentro (que es parte de la misma), entonces estoy en el modelo “Product”, y de esta forma:
$thisModel = (new self); // A new empty Model
$relation = (new self)->$relationName();
$relatedModel = $relation->getRelated(); // A new empty Model
Código de la siguiente respuesta: https://stackoverflow.com/a/56089111/3919660
Tengo los dos modelos conectados y puedo obtener sus nombres. Necesito los campos que corresponden a las FKs en la tabla intermedia. Si hago un trazado de la relación:
dd($relation);
Tengo lo siguiente:
IlluminateDatabaseEloquentRelationsBelongsToMany {#1377 ▼
#table: "category_product"
#foreignPivotKey: "product_id"
#relatedPivotKey: "category_id"
#parentKey: "id"
#relatedKey: "id"
#relationName: "categories"
#pivotColumns: ()
...
¿Cómo puedo obtener los nombres de los campos que relacionan “products” y “categories” de esta relación?
Nota: actualmente estoy obteniendo estos datos a partir una RAW query:
$query = 'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = "skyerp" AND TABLE_NAME = "' . $tableName . '" AND
COLUMN_KEY!="PRI" AND DATA_TYPE="bigint"';