我是新來使用 Laravel 的慣性
我的laravel版本是:9.10.1,Inertia版本:0.11,Vue:3.2
我有我的課程 RefundManager
class RefundManager { private int $id; private string $refund; public function __construct( int $id, string $refund, ) { $this->id = $id; $this->refund = $refund; } public function id(): int { return $this->id; } public function refund(): string { return $this->refund; } }
我的控制器中有一個該類別的對象,我可以透過其各自的方法 id() 和 returned() 完美地存取 $id 和 $refund。 但是當我嘗試將其傳遞給慣性時,我收到一個空物體。步驟:
return Inertia::render("Ppo/Sat/RefundCases/Index", [ 'refund' => $myRefundObject ]);
在我的 vue 元件中,我已將 prop 宣告為物件:
props: { 'refund': Object }
當我將變數 $id,$refund 更改為 public 時,它就起作用了。
但是當 $id 和 $refund 是私有的時,我只收到一個空對象,並且無法存取公共函數...
# 如何透過公共方法存取私有變數來使其與私有變數一起使用?
要將PHP對象轉換為JS對象,需要將其轉換為json格式的字串。
當您透過嘗試呼叫
toJson()
向視圖發送物件(如果在類別中定義)(預設情況下它存在於 Model 類別中)時,Laravel 會自動執行此操作所以加入這兩個函數(新增
toArray()
也不會造成傷害)