Tengo un problema con mis 2 consultas:
Pregunta n. ° 1:
$rows = DB::table(self::TABLE_NAME)
->selectRaw("subforum_id, count(1) as count")
->groupBy("subforum_id")
->get();
¿Existe la posibilidad de escribir esto por elocuente?
Y el segundo:
Topic::where("id", $topicId)->update(["posts_count" => +1]);
Necesito agregar +1 a la columna posts_count - ¿cómo hacer esto?
¿Y alguien puede explicarme para qué es RAW?
Respuestas
1 para la respuesta № 1Puedes escribir RAW
consulta como:
DB::table(DB::raw("Update topic set posts_count = posts_count + 1"))
RAW
consulta está disponible en casi todos los marcos, se utiliza para realizar consultas complejas donde los métodos de marcos no son suficientes para realizar su consulta.
0 para la respuesta № 2
Puedes simplemente usar esto
Con Eloquent:
Topic::find($topicId)->increment("posts_count");
O esto con el generador de consultas:
DB::table("topics")->where(["id"=>$topicId])->increment("posts_count");
De acuerdo con la documentación del generador de consultas laravel https://laravel.com/docs/5.4/queries#increment-and-decrement