带有 if 语句的 Laravel 匿名组件

Laravel anonymous component with an if statement

提问人:Hardist 提问时间:11/9/2022 更新时间:11/9/2022 访问量:98

问:

所以我想创造以下简单的东西。我在匿名组件中有一个简单的输入字段,我正在使用以下代码:

<x-form.input.text :error="$errors->first('name')"
                   field="name"
                   required="required" {!! isset($something) ? 'autofocus="autofocus"' : '' !!}/>

如果存在,则应添加。如果没有,则不应添加任何内容。$somethingautofocus="autofocus"

但是当使用上面的代码时,我的整个输入都消失了。在我的源代码中,我看到的不是输入字段,而是刀片代码,如下所示:

<x-form.input.text :error="$errors->first('name')"
                   field="name"
                   required="required" autofocus="autofocus"/>

当然,它应该是:

<input name="name" type="text" value="test" required="required" autofocus="autofocus">

我的主要问题是,我想了解为什么会发生这种情况,我不能在匿名组件中使用这段代码:

{!! isset($something) ? 'autofocus="autofocus"' : '' !!}

其次但不太重要的是,修复会很好。

PHP Laravel 组件 isset

评论


答:

1赞 rachids 11/9/2022 #1

为了修复您的代码以使用自动对焦,您可以使用文档@props

您可以查看匿名组件的以下代码:

@props(['autofocus'])

<input {{ $attributes->merge(['autofocus' => $autofocus]) }}/>

每当你这样称呼它时:

<x-input name="input" type="text" required="true" autofocus="true"></x-inpout>

它将自动对焦。

评论

0赞 Hardist 11/9/2022
谢谢,我知道这一点,问题是我想根据条件自动对焦输入,而不是简单地陈述或。autofocus="true"false
1赞 rachids 11/9/2022
只需在调用组件时传递条件即可
1赞 Hardist 11/9/2022
啊等等,我现在明白你的意思了,我会玩这个,我现在实际上认为这确实会奏效,谢谢!