Ich bin schrecklich beim Schreiben von Abfragen, die mit großen Datensätzen zu tun haben. Ich wollte Laravel erstechen und sehen, was ich daraus machen kann. Gibt es eine bessere Möglichkeit, diese Abfrage zu schreiben und die Ergebnisse auszugeben?Machen Sie diese Abfrage effizienter
-Code
$visitors = DB::table('visitors')
->where('id_client',1)
->select('id', 'ip', DB::raw('count(*) as total'), 'date', 'city', 'region')
->groupBy('ip')
->orderBy('date', 'DESC')
->simplePaginate(25);
Ergebnisse
@foreach($visitors as $visitor)
<tr>
<td>
{{$visitor->id}}
</td>
<td>
@if (date('F d, Y', strtotime($visitor->date)) === date('F d, Y'))
Today
@else
{{ date('F d, Y', strtotime($visitor->date)) }}
@endif
</td>
<td>
{{$visitor-total}}
</td>
<td>
{{$visitor->city}}
</td>
<td>
{{$visitor->region}}
</td>
</tr>
@endforeach
{!! $visitors->render() !!}
Auch erhalte ich die Fehler Use of undefined constant total - assumed 'total'
, wenn ich versuche, die Seite zu laden.
Jede Hilfe würde sehr geschätzt werden. Vielen Dank!
gut, da es nicht einmal funktioniert, "mehr" effizient würde nur funktionieren –
'{$ besucher-total}}' Syntaxfehler, fehlt die '>' für Accessor-Methoden von Objekten. Was ist falsch an der Abfrage, die Sie haben? Ist es langsam? Führt es nicht zu den gewünschten Ergebnissen? – Ohgodwhy
Sie erhalten diesen Fehler wegen eines Tippfehlers: {{$ visitor-total}} sollte {{$ visitor-> total}} sein – Kaladin11