2015-06-26 44 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開發者或地方張貼這個作爲一個官方的錯誤報告讓我知道