# in_array_keys Validaiton Rule
12.16 新增 in_array_keys validation rule,驗證指定 array 必須包含指定 keys
<?php
$validator = Validator::make($request->all(), [
'config' => 'array|in_array_keys:api_key,access_token,oauth_token',
'config.api_key' => 'nullable|string|min:32|max:64',
'config.access_token' => 'nullable|string|min:40',
'config.oauth_token' => 'nullable|string|starts_with:oauth_',
]);
# Interact with Hidden Context in the Context Attribute
12.16,context attribute 新增 hidden boolean argument
<?php
public function __construct(#[Context('user', hidden: true)] User $user)
# Add Rule contains() Fluent Method
12.16,Rule class 新增 contains()
<?php
use Illuminate\Validation\Rule;
// Before
Validator::make($request->all(), [
'roles' => [
'required',
'array',
'contains:'.implode(',', array_column([Role::Admin, Role::Editor], 'value')),
],
]);
// After
Validator::make($request->all(), [
'roles' => [
'required',
'array',
Rule::contains([Role::Admin, Role::Editor]),
],
]);
# Arr hasAll() Method
12.16 Arr class 新增 hasAll()
<?php
use Illuminate\Support\Arr;
$array = ['name' => 'Taylor', 'language' => 'php'];
Arr::hasAll($array, ['name']); // true
Arr::hasAll($array, ['name', 'language']); // true
Arr::hasAll($array, ['name', 'ide']); // false
# Stringable toUri() Method
12.16 可以將 Str instance 轉換為 URI instance
<?php
$sentence = 'Go to {https://euhosting.com/support} for support.';
$uri = str($sentence)->between('{', '}')->toUri();
if (auth()->user()->isVip()) {
$uri = $uri->withQuery(['customer' => auth()->user()->publicId()])
->withQuery(['priority' => 'emergency']);
}
return $uri->value();