Bu, Laravel 5.2 içindir. Bu iki kod parçası arasındaki farkın ne olduğundan emin değilim, ama bir tanesi referans olarak çalışıyor gibi görünüyor ve diğeri de öyle değil. Bu örnekteAktarım nesnelerini Laravel'e referans olarak gönderme
, sorgu nesnesi bir eylemi gerçekleştirmek için yanlış olup olmadığını kontrol etmek beni zorlar yöntem çağrısı, gelen değişikliklerin hiçbiri korur: Ancak
$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;
}
}
, bu iyi çalışır:
$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);
}
}
}
Bunun, with
yönteminin parçası olan ilişkiyle ilgili bir şey olduğunu tahmin ediyorum, ama emin değilim.