控制器中的对象突然变成视图中的数组
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);
谁能解释为什么会这样? 我无法在视图中访问我的数据,因为它突然变为数组。我尝试使用 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);