#20519·filament

从字段的父容器中调用 `$get()` 会返回原始(未转换)状态,但从兄弟容器中调用会返回转换后的状态

作者: sawirricardo创建于 2026年9月17日更新于 2026年9月17日
标签bugunconfirmedmedium priority

QQ 软件包

丝状/丝状

QQ 软件包版本

(五.8.2) (中文(简体) ).

QQ Laravel 版本

页:1

QQ 活线版本

(单位:千美元)

& > PHP 版本

第8.5.10页

问题描述

$get('field')'在目标字段有状态投影(例如“Select”带有-'选项(Some Enum::class)”并登记“EnumStateCast”)时,返回一个不同的类型,视其名称而定。

  • 从关闭亲切容器(例如另一个Tab''的badge()'、$get('status)')起,发现选定'并返回`$元组件-'getstate()',即enum实例
  • 从关闭该字段的** parent ** 容器(例如,持有选择'的Tab')、`$get('status')'返回raw字符串 值。

原因:`Get: invoke ()'在搜索前将呼叫组件推入“SkipCompaents Children Containers While Captainers”,因此搜索从不降入呼叫者自己的子女。 当没有找到球场时, 它会回到“ data get($lievwire, $path) ” , 它读取原始的Livewire状态并绕过球场的状态 。

跳过呼叫者的孩子大概是有意的(为了避免再出现尚未建成的儿童),但无声地改变返回的类型却令人惊讶. 相同的$get('status') === 状态:将比较'放在一个关闭处是真实的,而在另一个关闭处是虚假的,而`(字符串)$get('status')'则扔入一个地方并在另一个地方工作。

行为来自何处(`包装/装置/弧/组件/Utilities/Get.php'):

翻译: 静态:$sskipCompaents 儿童集装箱,同时配置 [] =$s- > 组件;

$ 组件 = ($- > 组件 - > getStatePath () * $path) $this- > 组件 : $ $this- >组件 - >getRootContaner () - >getContainentByStatePath () 欧巴马 与隐匿的、真实的、 以绝对的国度发誓, 校对:Soup (三)

如果 (! $ 组件) { 返回数据 get( $liverwire, $path); // 原始, 未显示 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

返回 $ 组件 - > get State (); // 铸造


预期行为

`$get()'应返回同一路径的同类型,而不论关闭的附加部分是什么。 后退部分要么仍应适用目标字段的状态铸造,要么(如果这不可行)文件应当说明,母容器的“$get()”返回原始的、未显示的状态。

* 复制步骤

最小页面( 复制回波中的完整代码) :

翻译:
enum 状态: 字符串
{
案例草案=“草案”;
案件公布=“公布”;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

/ 在一页/窗体图中,填入状态为 ['status' QQ'已公布'] :
标签 : make( )- > tabs( [
标签 : make (“ 父母标签 ”)
- > badge( fn (Get $get): 字符串 QQ 得到 debug 类型 ($get ('status')) / "字符串"
- >schema([
选择: make('status')- > 选项(status: class),
[

标签 : make( “ 兄弟姐妹标签 ”)
- > badge( fn (Get $get): 字符串 QQ 获得 debug 类型 ($get ('status')) / “ App\ Enums\ status”
- >schema([]),
[
  1. `盖特' . . . . . . .

内容来源: filamentphp/filament