laravel - plantillas - Instalar el generador de consultas directamente desde el modelo
laravel section yield example (1)
Cuando hago algo como SomeModel::with(''user'')
devuelve una instancia de Query/Builder
. ¿Cómo puedo obtener esta instancia sin necesidad de llamar al with()
( o similar )?
Por ejemplo, lo probé: new SomeModel
, pero obviamente devolverá la instancia de mi modelo, no el generador de consultas ( no me funcionó ). El SomeModel::getQuery
tampoco funciona, porque devuelve un Query/Builder
no relacionado con mi modelo.
Lo necesito para configurarlo basado en algunos condicionales. Así que inicialmente hay que estar vacío , me gusta:
$someBuilder = SomeModel::getQueryBuilder(); // eg.
if(condition()) {
$someBuilder->where(...);
}
$someResults = $someBuilder->get();
Utilice el método de query
estática:
$query = User::query();
Además, puede utilizar el método when
para encadenar estos condicionales directamente al propio generador de consultas:
$results = SomeModel::query()->when(condition(), function ($query) {
$query->where(...);
})->get();
Esto es funcionalmente equivalente al imperativo de la cláusula if
.