Cómo establecer dinámicamente el nombre de la tabla en el modelo elocuente
Soy nuevo en Laravel. Estoy tratando de usar Eloquent Model para acceder a los datos en DB.
Tengo tablas que comparten similitudes como el nombre de la tabla.
Así que quiero usar un modelo para acceder a varias tablas en DB como a continuación, pero sin suerte.
¿Hay alguna forma de establecer el nombre de la tabla dinámicamente?
Cualquier sugerencia o consejo sería apreciada. Gracias de antemano.
Modelo:
class ProductLog extends Model
{
public $timestamps = false;
public function __construct($type = null) {
parent::__construct();
$this->setTable($type);
}
}
Controlador:
public function index($type, $id) {
$productLog = new ProductLog($type);
$contents = $productLog::all();
return response($contents, 200);
}
Solución Para aquellos que sufren el mismo problema:
Pude cambiar el nombre de la tabla por la forma @Mahdi Younesi sugirió.
Y pude agregar dónde las condiciones como a continuación
$productLog = new ProductLog;
$productLog->setTable('LogEmail');
$logInstance = $productLog->where('origin_id', $carrier_id)
->where('origin_type', 2);