一個在PHP調試的最流行的方式仍然是相同的 - 在瀏覽器中顯示的變量,希望能找出錯誤是什麼。 Laravel具有顯示變量的特定短助手功能 - dd()
- 代表「Dump and Die」
,但它並不總是方便。什麼是其他選項?
注意下面提到的方法是尋找到我們班的失敗,什麼都可用我們的查詢執行後的情況。打印之前我們的預期結果是什麼。此方法是根據is要求找出錯誤的最佳方法。
首先,dd()有什麼問題?好吧,讓我們說,我們想從數據庫表中的所有行和甩掉他們:
$methods = PaymentMethod::all();
dd($methods);
我們會看到這樣的:
![enter image description here](https://i.stack.imgur.com/KZSGt.png)
但你明白了吧 - 看到的實際值,我們需要再點擊三次,如果沒有這些操作,我們看不到完整的結果。起初我想 - 也許dd()函數有一些參數呢?不幸的是,因此,讓我們來看看其他的選擇:
的var_dump()和死亡():
$methods = PaymentMethod::all();
var_dump($methods);
die();
我們現在看到的:表現出任何類型的數據的
好老PHP方式
![enter image description here](https://i.stack.imgur.com/UOaT1.png)
但還有更多可讀的方式。
另一個PHP內置函數print_r()
對我們一個完美的描述:
$methods = PaymentMethod::all();
print_r($methods);
die();
然後去查看瀏覽器的源代碼「打印關於變量人類可讀的信息」 ...我們得到這樣的:
現在
![enter image description here](https://i.stack.imgur.com/wdyPL.png)
,我們可以很容易地閱讀的內容,並嘗試進行調查錯誤。
此外,print_r()
函數有另一個可選參數與真/假值 - 你不能只回應該變量,但將其作爲字符串返回到另一個變量。然後,您可以將多個變量合併爲一個,例如可能將其記錄在某處。
所以,在這樣的情況下,dd()
不是那麼方便 - PHP原生函數來解救。但是,如果你想讓腳本從字面上「轉儲一個簡單的變量並且死掉」 - 然後dd($var) is probably the fastest to type
。
沒有定義功能,u需要檢查它'的var_dump($組);' – devpro
我得到相同的 - >查找() 的isEmpty()被描述爲返回true或false,不產生錯誤。 它可能從5.2中的Eloquent中移除了嗎? – Mladen