with updateorcreate relations firstornew espaƱol laravel eloquent

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;