2015-06-26 42 views
4

我讨厌回答我自己的问题,所以也许你可以帮我找到解决这个问题的东西。Laravel 5 +雄辩地toJson/toArray导致奇怪的分割错误

我有一些雄辩的模型属于对方,我通过像这样的关联来设置它们。这都是普通的东西。

不幸的是,这个过程导致$设备工作不正常。您可以在下面看到各个值是可访问的,但任何形式的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 

回答

3

Laravel没有正确处理错误。

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

我搬到里面我协会的if语句,如:

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

所以在创建设备时该协会将只发生。 你会认为将关联设置为它已经关联的对象不会破坏它。

它太奇怪了,值可以单独访问,但不能作为JSON。如果有人知道任何laravel开发者或地方张贴这个作为一个官方的错误报告让我知道