【问题标题】:htmlspecialchars(): Argument #1 ($string) must be of type string, stdClass givenhtmlspecialchars(): 参数 #1 ($string) 必须是字符串类型,stdClass 给定
【发布时间】:2023-02-14 13:11:15
【问题描述】:

我可能会收到脚本 $bank 的错误,该错误必须是字符串类型。在我的控制器上,我将它定义为一个字符串

<select wire:model="bank" name="bank" class="form-select">
                                @foreach($banks as $bank)
                                <option value="'{{$bank->name}}'">{{$bank->name}}</option>
                                @endforeach
                            </select>

这是在发出 htmlspecialchars() 时出现错误的脚本:参数 #1 ($string) 必须是字符串类型,给定的 stdClass

<script type="text/javascript">
    window.onload = function() {
        Livewire.on('changeModels', () => {
            // Code Here
            toggleViews({{$bank}})
            //    $('.bank-mode').removeClass('d-none').siblings('.driver-pay-method').addClass('d-none')//

        })
    }
</script>

控制器我已将 $bank 变量定义为字符串。

public String $bank="";

public function updatedBank($value)
{
    $this->bank =$value;
    $this->emit('changeModels');
}

【问题讨论】:

  • 您在视图上循环 $banks 属性,但此属性在您的控制器上不可用。您可以编辑您的问题并将 $banks 添加到您的控制器吗?

标签: laravel-livewire


【解决方案1】:

您正在将 $banks 变量循环到 $bank 中。通过这样做,您将覆盖刀片视图中的 $bank 变量,从您期望的字符串到最后一个可用的银行对象。如果您更改变量名称,那么它应该起作用:

<select wire:model="bank" name="bank" class="form-select">
    @foreach($banks as $bankModel)
        <option value="{{$bankModel->name}}">
            {{$bankModel->name}}
        </option>
    @endforeach
</select>

【讨论】:

    猜你喜欢
    • 2022-08-21
    • 2021-10-19
    • 1970-01-01
    • 2021-06-30
    • 2017-03-22
    • 2021-10-18
    • 2018-03-22
    • 2018-02-22
    • 2018-11-10
    相关资源
    最近更新 更多