• Czas czytania ~2 min
  • 22.03.2023

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 , HasManyHasManyThroughi .

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')

  • Dodano Dodano alternative database port in Postgres DSN (#46403)
  • wywołanie ( #46445)
  • Convert eloquent builder to base builder in whereExists (#46460)

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297