从字段的父容器中调用 `$get()` 会返回原始(未转换)状态,但从兄弟容器中调用会返回转换后的状态
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([]),
[- `盖特' . . . . . . .
内容来源: filamentphp/filament