Wie baut man ein Query Builder richtig in Laravel 9?
Hey, ich bin relativ neu in Laravel dabei und habe das Problem, dass ich nicht wirklich weiß, wie ich den bauen soll. Ist das folgende richtig?
...
use Illuminate\Support\Facades\DB;
//use App\Models\posts;
use Illuminate\Http\Request;
class postController extends Controller
{
public function index()
{
$posts = DB::table('posts')->get();
return view('posts')->with($posts);
}
}
oder doch so:
//use Illuminate\Support\Facades\DB;
use App\Models\posts;
use Illuminate\Http\Request;
class postController extends Controller
{
public function index()
{
$posts = posts::all();
return view('posts')->with($posts); // oder hier doch compact()?
}
}
1 Antwort
Die zweite Variante ist korrekt, da sie die Eloquent ORM (Object-Relational Mapping) von Laravel verwendet, um die Daten aus der Datenbank abzufragen.
In Laravel gibt es mehrere Möglichkeiten, um Daten aus der Datenbank abzufragen. Die erste Möglichkeit ist die Verwendung von Raw SQL-Abfragen mithilfe von Funktionen wie DB::table() oder DB::select(). Diese Funktionen ermöglichen es, SQL-Abfragen direkt in Laravel auszuführen, ohne dass man ein SQL-Modell schreiben muss.
Die zweite Möglichkeit ist die Verwendung der Eloquent ORM, die es ermöglicht, die Datenbankabfragen mithilfe von PHP-Modellen durchzuführen. Laravel bietet eine Vielzahl von Funktionen, die man verwenden kann, um Daten aus der Datenbank abzufragen, zum Beispiel find(), all(), where(), orderBy() usw.
Die Eloquent ORM hat den Vorteil, dass sie die Verwendung von SQL-Abfragen vermeidet und die Abfragen mithilfe von PHP-Modellen durchführt. Dies macht es einfacher, die Abfragen zu lesen und zu verstehen und gibt Ihnen mehr Flexibilität, um die Abfragen zu gestalten.