Команда Laravel випустила 10.4 за допомогою методу File::json(), перетворивши існуючі зв'язки HasMany на зв'язок HasOne, нове твердження про відповідь на тест тощо.
Файл::json() метод Остін Уайт вніс метод
як зручність для отримання закодованих JSON даних з файлу:Assert непідтримуваний тип носія
// Before
$contents = File::get('sample.json');
$data = json_decode($contents, true);
// After
$data = File::json('sample.json');
Шамімул Алам вніс File::json()
допоміжний помічник для коду 415 Unsupported Media Type
статусу відповіді:Перетворити існуючий зв'язок HasMany в HasOneЛюк Кузьмиш сприяв перетворенню HasMany в HasOne і MorphMany в MorphOne
Візьмемо цей приклад необхідності визначення двох зв'язків:
$response->assertUnsupportedMediaType();
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();
}
}
За допомогою цього PR тепер ви можете зробити наступне замість методу->one()
:
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();
}
}
Метод one()
доступний на HasMany
, HasManyThrough
, і MorphMany
.
Створення макродоступного методу для Франса Слаббекорна внесло можливість визначення макросу для paginationInformation
paginationInformation
цього дозволяє налаштовувати інформацію про нумерацію сторінок без необхідності розширювати всі ресурси як базовий ресурс:
/** @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();
}
}
Примітки
до випуску Ви можете побачити повний список нових функцій та оновлень нижче та різницю між 10.3.0 та 10.4.0 на GitHub. Наступні примітки до випуску знаходяться безпосередньо з журналу змін:Додано (#46426)Додано curl_error_code:
Додано (#46426)Додано curl_error_code:
77 to DetectsLostConnections (#46429)Дозволити перетворення HasMany в HasOne && MorphMany в MorphOne (#46443)Додати опцію для створення макропридатного методу для нумерації сторінокІнформація (#46461)Додано Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType()
Illuminate/Filesystem/Filesystem::json()
- 77 to DetectsLostConnections (#46429)Дозволити перетворення HasMany в HasOne && MorphMany в MorphOne (#46443)Додати опцію для створення макропридатного методу для нумерації сторінокІнформація (#46461)Додано
Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType()
Illuminate/Filesystem/Filesystem::json()
Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType()
(#46426) - 77 to DetectsLostConnections (#46429)Дозволити перетворення HasMany в HasOne && MorphMany в MorphOne (#46443)Додати опцію для створення макропридатного методу для нумерації сторінокІнформація (#46461)Додано
Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType()
Illuminate/Filesystem/Filesystem::json()
curl_error_code: 77 to DetectsLostConnections (#46429) - 77 to DetectsLostConnections (#46429)Дозволити перетворення HasMany в HasOne && MorphMany в MorphOne (#46443)Додати опцію для створення макропридатного методу для нумерації сторінокІнформація (#46461)Додано
Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType()
Illuminate/Filesystem/Filesystem::json()
Illuminate/Filesystem/Filesystem::json()
(#46481)
Виправлено
- Виправлення проаналізованих вхідних аргументів для командних подій за допомогою перенаправлення диспетчера (#46442)Fix enums використовує з необов'язковими неявними параметрами (#46483)Виправлення вилучень для вбудованих зображень у symfony mailer (#46488)Змінено
- Додано альтернативний порт бази даних у Postgres DSN (#46403)Дозволити виклик getControllerClass на маршрутах на основі закриття (#46411)Видалити застарілі method_exists(ReflectionClass::class, 'isEnum')
- 77 to DetectsLostConnections (#46429)Дозволити перетворення HasMany в HasOne && MorphMany в MorphOne (#46443)Додати опцію для створення макропридатного методу для нумерації сторінокІнформація (#46461)Додано
Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType()
Illuminate/Filesystem/Filesystem::json()
alternative database port in Postgres DSN (#46403) - виклик ( #46445)
- Перетворити красномовного конструктора на базовий конструктор у whereExists (#46460)Рефактор поділився статичним методомВиключенийByOptions метод на рису (#46498)