2015-05-26 52 views
2

有沒有辦法阻止laravel總是返回一個數組,無論是否只有一個元素?我已經檢查了文檔並且簡短地介紹了一下。這很好,如果這只是它的方式,看起來有點愚蠢,因爲如果只有一個元素,你不會將數組發送到端點!Laravel 5 response() - > json總是返回一個數組?

的理智緣故返回有效載荷:

[ 
    { 
     "id": 1, 
     "created_at": "2015-05-22 15:41:24", 
     "updated_at": "2015-05-22 15:41:24", 
     "deleted_at": null, 
     "closed_loop_interaction_type_id": 1, 
     "interaction_note": "Test Interaction note", 
     "closed_loop_processes_id": 1, 
     "interaction_type": { 
      "id": 1, 
      "created_at": "2015-05-22 15:41:24", 
      "updated_at": "2015-05-22 15:41:24", 
      "deleted_at": null, 
      "type": 0, 
      "method": "Phone Call (mobile)" 
     } 
    } 
] 

這是一個對象,但發回爲1數組有沒有辦法阻止呢?這是我填充模型的方式嗎?

$query = ClosedLoopInteraction::with('interactionType'); 
// Construct a list of headers 
$headers = \HeaderHelper::generatePaginationHeader($page, $query, 'closedloop', $limit); 
\QueryHelper::handleQueryFiltering(
    $query, ['limit'=> $limit, 'page' => $page]); 
$response = response()->json($query->get(), \ApiResponse::$STATUS_OK); 
// Add the constructed headers to the response 
\HeaderHelper::addHeadersToResponse($response, $headers); 
return $response; 

回答

1

好,Laravel,從後面觀察,以此來回報您所看到的JSON使用json_encode,手頭上有這個,你就可以知道當你傳遞一個數組時,無論長度如何,即使是length === 1,你也會得到一個數組輸出,因爲這樣的方式json_encode的工作方式,所以你應該像@Mark Ba​​ker所說的那樣修改以下行:

$response = response()->json($query->get(), \ApiResponse::$STATUS_OK); 

收件人:

$response = response()->json($query->first(), \ApiResponse::$STATUS_OK); 
1

這取決於。看着你的代碼,你將返回一個模型列表。如果是這樣的話,你也應該返回一個數組,無論是單個還是多個模型。這樣返回類型總是相同並且更容易處理。但是,如果您查看特定型號,編輯或其他內容,請使用其他答案建議的方法first()

相關問題