1. 模型屬性不知道哪裏修改?spa
直接覆蓋模型的 setAttribute 方法,監測到某一個屬性改動的時候,拋一個異常就能夠看到堆棧了code
use Illuminate\Database\Eloquent\Model; class Person extends Model { public function setAttribute($key, $value) { if ($key == 'xxx') { // 'xxx' 是你想要監聽的屬性 throw new \RuntimeException; } return parent::setAttribute($key, $value); } }
有多個地方修改?拋異常,捕獲寫 log,而後去 log 裏面看。對象
use Illuminate\Database\Eloquent\Model; class Person extends Model { public function setAttribute($key, $value) { if ($key == 'xxx') { // 'xxx' 是你想要監聽的屬性 try { throw new \RuntimeException; } catch (\RuntimeException $e) { \Log::error($e->getTraceAsString()); } } return parent::setAttribute($key, $value); } }
2. Try to get property of non-object ?blog
$a = null; var_dump($a->c);
對於這種場景,咱們也能夠 try catch,而後在異常處理裏面 dump 上下文一些關鍵的變量、對象這些東西。get