/ / Preguntas de consulta sin formato de Laravel - php, laravel, elocuent

Preguntas de consulta sin formato de Laravel: php, laravel, elocuent

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 № 1

Puedes 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