Dies ist für Laravel 5.2. Ich bin mir nicht sicher, was der Unterschied zwischen diesen beiden Codeabschnitten ist, aber einer scheint durch Verweis zu funktionieren und der andere nicht.Übergeben von Abfrageobjekten in Laravel durch Referenz
In diesem Beispiel wird das Abfrage-Objekt keine der Änderungen aus dem Methodenaufruf behält, die mich falsch zu überprüfen zwingt, eine Aktion auszuführen:
$query = new User();
$query = $this->processOrderByFields($query, $request, User::getOrderByFields());
if ($query === false) {
return $this->respondError(HTTP_UNPROCESSABLE_ENTITY);
}
public function processOrderByFields($query, $request, $availableFields)
{
# Get fields
foreach ($fields as $field) {
# Do things to the field...
if (# Not important) {
$query = $query->orderBy(# Field, # Direction);
} else {
$badFields[] = $field;
}
}
if ($badFields) {
return false;
} else {
return $query;
}
}
Das funktioniert aber fein:
$query = new User();
$this->processInclude($query, $request, Client::getIncludeRelationships());
public function processInclude($query, $request, $objectRelationship)
{
if ($request->get('include') && is_array($request->get('include'))) {
$include = array_intersect($request->get('include'), $objectRelationship);
foreach($include as $relation) {
$query->with($relation);
}
}
}
Ich vermute, das hat etwas mit der Beziehung Aufbau der with
Methode zu tun, aber ich weiß es nicht sicher.