我想获取Laravel中咨询中间号码的ID。
示例:我在laravel中进行查询,它给了我10个元素,但是我想知道wich是中间的元素。
$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];
问题在于,最后一个的结果给了我元素总数的位置,而不是查询元素的位置。
在这种情况下,我想获取中间的元素,即位置5,其ID为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
答案 0 :(得分:2)
尝试以下代码行。希望对您有帮助。
$mensajes = Message::where('asunto', 0)->get();
$totalComentarios = count($mensajes);
$mitadComentarios = floor($totalComentarios/2);
$primerosComentarios = $mensajes[$mitadComentarios];
答案 1 :(得分:1)
此外,您可以使用laravel的帮助程序进行收集:
$chunks = $mensajes->chunk($mitadComentarios);
这样,您将获得两个较小的集合,并按元素计数将其分成一半。
Docs。