Как получить средний номер запроса в Eloquent Laravel? - PullRequest
0 голосов
/ 11 марта 2019

Я хочу получить идентификатор номера середины консультации в Laravel.

Пример: я делаю запрос в laravel, и он дает мне 10 элементов, но я хочу знать,который является элементом середины.

$usuario = Auth::user();

    $mensajes = Message::all()->where('asunto', 0);
    $totalResenas = Message::all();

    $totalComentarios = count($mensajes);
    $mitadComentarios = round($totalComentarios/2);
    $mitadComentarios = trim($mitadComentarios);


    $primerosComentarios = $mensajes[$mitadComentarios];

Проблема в том, что результат последнего дает мне общее количество элементов, а не элементов запроса.

The result of the query

В этом случае я хочу получить элемент середины, позицию 5 с идентификатором 7.

Вид:

<!--Primera fila de las reseñas-->
            @foreach($mensajes as $mensaje)
                <!--Si es reseña aqui se mostrará-->
                @if($mensaje->asunto = true)

                        @if($mensaje->id <= $primerosComentarios)
                            <p>{{ $mensaje->id }}</p>
                            <div class="service mb-0">
                                <div class="service__icon"><i class="pe-7s-user"></i></div>

                                <!--Calificacion en estrellitas-->

                                <!--Sacamos el valor de la calificacion-->
                            @php
                                $calificacion = $mensaje->calificacion;
                            @endphp
                            <!--END Sacamos el valor de la calificacion-->

                                <!--Imprimimos las estrellitas-->
                                @for($i = 1; $i <= $calificacion; $i++)
                                    <label class="" style="color: orange" for="radio1">★</label>
                            @endfor
                            <!--END Imprimimos las estrellitas-->

                                <!--END Calificacion en estrellitas-->

                                <h3 style="color:lightseagreen;" class="service__title">{{ $mensaje->name }}</h3>
                                <p class="service__text">{{ $mensaje->mensaje }}</p>
                            </div>
                        @endif

                @endif
                <!--END Si es reseña aqui se mostrará-->

            @endforeach

Печать второй половины запроса

@foreach($mensajes as $mensaje)
                <!--Si es reseña aqui se mostrará-->
                @if($mensaje->asunto = true)

                    @if($mensaje->id > $primerosComentarios && $mensaje->id <= count($totalResenas))
                        <div class="service mb-0">
                            <div class="service__icon"><i class="pe-7s-user"></i></div>

                            <!--Calificacion en estrellitas-->

                            <!--Sacamos el valor de la calificacion-->
                        @php
                            $calificacion = $mensaje->calificacion;
                        @endphp
                        <!--END Sacamos el valor de la calificacion-->

                            <!--Imprimimos las estrellitas-->
                            @for($i = 1; $i <= $calificacion; $i++)
                                <label class="" style="color: orange" for="radio1">★</label>
                        @endfor
                        <!--END Imprimimos las estrellitas-->

                            <!--END Calificacion en estrellitas-->
                            <h3 style="color:lightseagreen;" class="service__title">{{ $mensaje->name }}</h3>
                            <p class="service__text">{{ $mensaje->mensaje }}</p>
                        </div>
                    @endif

                @endif
                <!--END Si es reseña aqui se mostrará-->

            @endforeach

Ответы [ 2 ]

2 голосов
/ 11 марта 2019

Попробуйте эту строку кода. Надеюсь, это поможет вам.

$mensajes = Message::where('asunto', 0)->get();

$totalComentarios = count($mensajes);
$mitadComentarios = floor($totalComentarios/2);

$primerosComentarios = $mensajes[$mitadComentarios];
1 голос
/ 11 марта 2019

Кроме того, вы можете использовать помощника Ларавела для сбора:

$chunks = $mensajes->chunk($mitadComentarios);

, так что вы получите две меньшие коллекции, разделенные на половину по количеству элементов.

Документы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...