Zespół Laravel wydał wersję 10.4 z metodą File::json(), konwertując istniejące relacje HasMany na relację HasOne, nowe potwierdzenie odpowiedzi testowej i wiele innych.
File::json(), metoda
Austin White dodał File::json()
metodę jako udogodnienie do pobierania danych zakodowanych w formacie JSON z pliku file:Assert nieobsługiwany typ
// Before
$contents = File::get('sample.json');
$data = json_decode($contents, true);
// After
$data = File::json('sample.json');
nośnikaShamimul Alam przyczynił się do pomocnika potwierdzenia dla 415 Unsupported Media Type
odpowiedzi status code:Convert an existing HasMany to HasOnerelationship Luke Kuzmish przyczynił się do konwersji HasMany na HasOne i MorphMany na MorphOne
$response->assertUnsupportedMediaType();
Weźmy ten przykład konieczności zdefiniowania dwóch relacji:
class User extends Model
{
public function logins(): HasMany {
return $this->hasMany(Login::class, 'some_id', 'the_other_id');
}
public function latestLogin(): HasOne {
return $this->hasOne(Login::class, 'some_id', 'the_other_id')->latestOfMany();
}
}
Za pomocą tego PR możesz teraz wykonać następujące czynności za pomocą ->one()
metody:
class User extends Model
{
public function logins(): HasMany {
return $this->hasMany(Login::class, 'some_id', 'the_other_id');
}
public function latestLogin(): HasOne {
return $this->logins()->one()->latestOfMany();
}
}
Metoda one()
jest dostępna w , HasMany
HasManyThrough
i .
MorphMany
Tworzenie metody makro dla paginationInformation
Fransa Slabbekoorna przyczynił się do możliwości zdefiniowania makrapaginationInformation
, które umożliwia dostosowywanie informacji o paginacji bez konieczności rozszerzania wszystkich zasobów jako zasobu podstawowego:
/** @mixin \Illuminate\Http\Resources\Json\ResourceCollection */
class ResourceCollectionMixin
{
public function paginationInformation(): Closure
{
return fn ($request, $paginated, $default) => collect($default)->mapWithKeysRecursively(fn ($item, $key) => [Str::camel($key) => $item])->toArray();
}
}
Informacje o
wersji Poniżej znajduje się pełna lista nowych funkcji i aktualizacji oraz różnica między 10.3.0 a 10.4.0 na GitHub. Następujące informacje o wersji pochodzą bezpośrednio z dziennika zmian:
v10.4.0
Dodano Dodano
- Dodano Dodano
Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType()
(#46426) - Dodano Dodano curl_error_code: 77 to DetectsLostConnections (#46429)
- Dodano Dodano
Illuminate/Filesystem/Filesystem::json()
(#46481)
- Napraw przeanalizowane argumenty wejściowe dla zdarzeń poleceń przy użyciu przekierowywania dyspozytora (#46442)Napraw użycie wyliczeń za pomocą opcjonalnych parametrów niejawnych (#46483)Napraw wycofanie dla osadzonych obrazów w mailerze symfony (#46488)Zmieniono
- Dodano alternatywny port bazy danych w Postgres DSN (#46403)Zezwalaj na wywoływanie getControllerClass na trasach opartych na zamknięciu (#46411)Usuń przestarzałe method_exists(ReflectionClass::class, 'isEnum')