我是新来使用 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 是私有的时,我只收到一个空对象,并且无法访问公共函数...
如何通过公共方法访问私有变量来使其与私有变量一起使用?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
要将PHP对象转换为JS对象,需要将其转换为json格式的字符串。
当您通过尝试调用
toJson()向视图发送对象(如果在类中定义)(默认情况下它存在于 Model 类中)时,Laravel 会自动执行此操作所以添加这两个函数(添加
toArray()也不会造成伤害)/** * Convert the object instance to an array. * * @return array */ public function toArray() { return [ 'id' => $this->id, 'refund' => $this->refund, ]; } /** * Convert the object instance to JSON. * * @param int $options * @return string * * @throws \Exception */ public function toJson($options = 0) { $json = json_encode($this->toArray(), $options); if (JSON_ERROR_NONE !== json_last_error()) { throw new \Exception(json_last_error_msg()); } return $json; }