gpt4 book ai didi

php - Laravel 5 + Eloquent toJson/toArray 导致奇怪的段错误

转载 作者:可可西里 更新时间:2023-10-31 23:19:09 24 4
gpt4 key购买 nike

我不想回答我自己的问题,所以也许你能帮我找到解决这个问题的方法。

我有一些属于彼此的 Eloquent 模型,我通过这样的关联来设置它们。这都是正常的事情。

不幸的是,这个过程导致 $device 无法正常工作。您可以在下面看到可以访问各个值,但任何形式的 jsonification 都会在没有错误的情况下破坏服务器。

$device = $truck->device;
if(is_null($device) || empty($device)) {
$device = new Devices;
}
$device->truck()->associate($truck);
$device->fleet()->associate($fleet);
$device->serial = $device_input['serial'];

$device->save();
$truck->device()->associate($device);
$truck->save();

error_log( $device->id ); //OK
error_log( $truck->device->id ); //OK
error_log( $device->toJson() ); //ERROR SEGMENTATION FAULT
error_log( $truck->toArray() ); //ERROR SEGMENTATION FAULT
error_log( $truck->device->toJson() ); //ERROR SEGMENTATION FAULT
error_log( $truck->device->toArray() ); //ERROR SEGMENTATION FAULT
error_log( json_encode($device) ); //ERROR SEGMENTATION FAULT
error_log( json_encode($truck->device) ); //ERROR SEGMENTATION FAULT

最佳答案

Laravel 没有正确处理错误。

首先,检查您的餐 table 。当我打印我的设备表时,我可以看到每次运行时都会创建新设备,这意味着关联显然不起作用。

我将我的关联移动到 if 语句中,例如:

if(is_null($device) || empty($device)) {
$device = new Devices;
$device->truck()->associate($truck);
$device->fleet()->associate($fleet);
}

这样关联只会在设备创建时发生。您可能认为将关联设置到它已经关联的对象不会破坏它。

很奇怪,值可以单独访问,但不能作为 json 访问。如果有人知道任何 laravel 开发人员或将其作为官方错误报告发布的地方,请告诉我

关于php - Laravel 5 + Eloquent toJson/toArray 导致奇怪的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com