Context doesn't allow access to nested data
評価
調査の方向性
PHP の再現コードを出発点として、Nested、Each、Required がバリデーションコンテキストをどのように渡すかを調べます。Required 条件が各タスクのネストされた push データ内にある兄弟要素の isEnabled 値へアクセスできる方法を特定します。提供されたルールでコンテンツを条件付きで必須にでき、その動作がリグレッションケースで実証されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
What steps will reproduce the problem?
public function getRules(): array
{
return [
'submitForVerification' => [
new Required,
new BooleanValue,
],
'tasks' => [
new Each(
new Nested([
'push' => [
new Nested([
'isEnabled' => [
new Required(when: fn() => $this->submitForVerification),
new BooleanValue,
],
'content' => [
new Required(when: [???]),
],
])
],
])
)
],
];
}
What is the expected result?
I can set Required validator for content dependent on his sibling isEnabled value.
What do you get instead?
It cannot be done? Or it'll be ugly solution.
Additional info
| Q | A |
|---|---|
| Version | 2.1.x |
| PHP version | 8.2 |
| Telegram message | https://t.me/yii3en/10708 |
- 主要言語
- PHP
- スター
- 167
- フォーク
- 47
- 平均マージ
- 1日 7時間
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
yiisoft/validator のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
-
Dataset is not passed to context in StopOnError()対応中かも @vjik が 17 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 62/100
yiisoft/validator の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 84/100
WordPress/hosting-handbook#506 ·
メンテナーはふだん 2 日以内に返信
-
Installing a plugin with composer_packages installs dev dependencies and breaks the autoloader (Error 500)対応中かも @Boy132 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
nginx: static-file locations drop the security headers, and the dotfile deny is matched after themオープンbug Low Security
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
backdrop-contrib/commerce#60 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 76/100