• Час читання ~2 хв
  • 22.03.2023

Команда 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)
  •  

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

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

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297