updateorcreate - Laravel Eloquent Lazy Eager Load Count
updateorcreate laravel (2)
A partir de Laravel 5.2, esta funcionalidad está incorporada.
Siempre que tengas una relación hasMany entre Publicar y Comentario, haz:
<?php
$posts = App/Post::withCount(''comments'')->get();
foreach ($posts as $post) {
echo $post->comments_count;
}
Incluso puede contar las relaciones de carga impacientes de forma predeterminada declarando esto en su modelo:
<?php
// Post model
protected $withCount = [''comments''];
Idealmente estoy buscando una función como
load(''relationship'')
pero que carga una cuenta de la misma manera
withCount(''relationship'')
Trabajos para cargar ansiosos.
Estoy pensando que se va a llamar loadCount(''relationship'')
Esta solución funciona muy bien para mí:
Cree una nueva relación hasOne en el modelo relacionado y agregue una selección sin procesar a la consulta para el recuento. Por ejemplo, si desea cargar ansiosamente la cantidad de tareas para un usuario determinado, agregue esto al Modelo de usuario:
public function taskCount()
{
return $this->hasOne(''App/Task'')
->selectRaw(''user_id, count(*) as count)
->groupBy(''user_id'');
}
Y luego ansiosos cargar la cuenta de esta manera:
$user = User::where(''email'', $email)->with(''taskCount)->first();
Y accede al conteo así:
$taskCount = $user->task_count->count;