控制器中的对象突然变成视图中的数组

Object at controller suddenly become array at view

谁能解释为什么会这样? 我无法在视图中访问我的数据,因为它突然变为数组。我尝试使用 var_dumb 检查它 在控制器

public function render()
{
    var_dump($this->provinces);
    return view('livewire.user-address-form');
}

public function mount()
{
    $provinces = Shipment::getProvince();
    if($provinces->code !== 200)
    {
        abort($provinces->code, $provinces->message);
    }
    else
    {
        $this->provinces = $provinces->data;
    }
}

getProvince() 方法是一个 API 调用,响应类似于 this image。然后我将 $this->province 分配给“data”

var_dump的结果是这样的:

array(34) { [0]=> object(stdClass)#1417 (2) { ["province_id"]=> string(1) "1" ["province"]=> string(4) "Bali" } [1]=> object(stdClass)#1411 (2) { ["province_id"]=> string(1) "2" ["province"]=> string(15) "Bangka Belitung" } [2]=> object(stdClass)#1429 (2)...

看来我有这样的代码:

<select wire:model.debounce.800ms="provinceId" id="provinceId"
    class="form-select block rounded-md shadow-sm mt-1 w-full">
    <option value="">-</option>
    @foreach($provinces as $province)
        <option>{{ var_dump($province) }}</option>
    @endforeach
</select>

结果就像 this image

编辑: 我在视图中尝试访问我的数据时发现了这个问题。当我使用对象 属性 语法时出现错误“试图获取非对象 laravel 的 属性”,当我尝试使用数组语法时出现错误“无法使用 stdClass 类型的对象”作为数组”。我已经有了解决方案,但我不喜欢(编码为 json 然后解码为数组)。只是想知道为什么会这样。

我的解决方案:

使用JSON编码+解码

$province数据转换为数组
$this->provinces = json_decode(json_encode($provinces->data), true);