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 .