2017-10-19 51 views
0

上的請求獲取屬性,它將起作用。當控制器試圖獲得如下請求時,無法從laravel

$test = $request->base; 
return response()->json(['test' => $test]); 

前端會得到JSON這樣的:

{name: "aaaa", price: null, discounted: null, area: null, address: null, …} 

,但是當我試圖讓 「名」 屬性:

$test = $request->base 
$test2 = $test->name; 
return response()->json(['test' => $test2]); 

然後我在網絡預覽得到錯誤:

{message: "Trying to get property of non-object", exception: "ErrorException",…} 

原因是因爲$ request-> base不再有任何東西。

$test = $request->base 
$check = gettype($test); // shows null 
$test2 = $test->name; 
return response()->json(['test' => $test2]); 

爲什麼會發生這種情況?如何獲取屬性是這樣的:
$請求 - >鹼 - >名

+0

'$ request-> base'的價值是什麼?你確定它是一個對象嗎? '$ test ['name']'工作嗎? – ceejayoz

+0

$ request-> base是一個json,如下所示: {name:「aaaa」,price:null,discounted:null,area:null,address:null,...} 它工作的時候我改變$ test2 = $ test-> name到$ test2 = $ test ['name']; 但是$ test2 = $ test-> name和$ test2 = $ test ['name']有什麼區別?爲什麼$ test2 = $ test-> name不能工作? – jimmy

+0

如果'$ test ['name']'有效,'$ test'是一個數組,而不是一個對象。您在兩種數據類型中訪問參數的方式不同。 – ceejayoz

回答

1

試試這個數組和對象是不同的類型。在第一行中,我們在$ test中有一個數組,所以你不能使用 - >運算符訪問它;

$test = $request->base 
$test2 = $test['name']; 
+0

謝謝,我意識到請求的屬性不是json。這是工作。 – jimmy

相關問題