Make nonscalar field saves raise a more useful exception from LiskDAO
Make nonscalar field saves raise a more useful exception from LiskDAO

Summary:
If you do something like this:

  // Missing $user->getPHID()!
  $object->setUserPHID($user)->save();

...you get a very unhelpful exception:

  Expected a scalar or null for %s conversion. Query: %s

This doesn't give you any hints about what's wrong. Instead, provide a more useful exception:

  Unable to insert or update object of class DifferentialRevision, field 'title' has a nonscalar value.

Test Plan: {F87614}

Reviewers: hach-que, btrahan

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D7725

kanarip/phabricator,tanglu-org/tracker-phabricator,vinzent/phabricator,optimizely/phabricator,NigelGreenway/phabricator,folsom-labs/phabricator,WuJiahu/phabricator,kwoun1982/phabricator,christopher-johnson/phabricator,ide/phabricator,ryancford/phabricator,wikimedia/phabricator-phabricator,hach-que/unearth-phabricator,dannysu/phabricator,wikimedia/phabricator-phabricator,codevlabs/phabricator,shl3807/phabricator,wusuoyongxin/phabricator,matthewrez/phabricator,devurandom/phabricator,aik099/phabricator,Symplicity/phabricator,Drooids/phabricator,librewiki/phabricator,dannysu/phabricator,WuJiahu/phabricator,dannysu/phabricator,akkakks/phabricator,Soluis/phabricator,cjxgm/p.cjprods.org,tanglu-org/tracker-phabricator,hach-que/phabricator,sharpwhisper/phabricator,sharpwhisper/phabricator,christopher-johnson/phabricator,parksangkil/phabricator,akkakks/phabricator,vinzent/phabricator,uhd-urz/phabricator,devurandom/phabricator,freebsd/phabricator,ryancford/phabricator,librewiki/phabricator,hshackathons/phabricator-deprecated,denisdeejay/phabricator,gsinkovskiy/phabricator,Soluis/phabricator,phacility/phabricator,folsom-labs/phabricator,WuJiahu/phabricator,jwdeitch/phabricator,optimizely/phabricator,kwoun1982/phabricator,kanarip/phabricator,NigelGreenway/phabricator,eSpark/phabricator,a20012251/phabricator,ryancford/phabricator,uhd-urz/phabricator,cjxgm/p.cjprods.org,codevlabs/phabricator,uhd-urz/phabricator,phacility/phabricator,aswanderley/phabricator,parksangkil/phabricator,schlaile/phabricator,huaban/phabricator,eSpark/phabricator,UNCC-OpenProjects/Phabricator,huaban/phabricator,akkakks/phabricator,uhd-urz/phabricator,tanglu-org/tracker-phabricator,hach-que/unearth-phabricator,coursera/phabricator,shrimpma/phabricator,eSpark/phabricator,huangjimmy/phabricator-1,optimizely/phabricator,aik099/phabricator,Khan/phabricator,folsom-labs/phabricator,denisdeejay/phabricator,librewiki/phabricator,freebsd/phabricator,Symplicity/phabricator,optimizely/phabricator,shrimpma/phabricator,akkakks/phabricator,wikimedia/phabricator,hshackathons/phabricator-deprecated,Drooids/phabricator,hshackathons/phabricator-deprecated,jwdeitch/phabricator,codevlabs/phabricator,devurandom/phabricator,schlaile/phabricator,christopher-johnson/phabricator,leolujuyi/phabricator,devurandom/phabricator,dannysu/phabricator,denisdeejay/phabricator,devurandom/phabricator,shrimpma/phabricator,MicroWorldwide/phabricator,vinzent/phabricator,Automattic/phabricator,zhihu/phabricator,uhd-urz/phabricator,jwdeitch/phabricator,Khan/phabricator,a20012251/phabricator,Soluis/phabricator,huaban/phabricator,Soluis/phabricator,r4nt/phabricator,vuamitom/phabricator,eSpark/phabricator,NigelGreenway/phabricator,librewiki/phabricator,sharpwhisper/phabricator,gsinkovskiy/phabricator,kanarip/phabricator,sharpwhisper/phabricator,zhihu/phabricator,vinzent/phabricator,Automatic/phabricator,Drooids/phabricator,a20012251/phabricator,vuamitom/phabricator,shl3807/phabricator,wxstars/phabricator,schlaile/phabricator,aswanderley/phabricator,benchling/phabricator,Khan/phabricator,coursera/phabricator,tanglu-org/tracker-phabricator,wusuoyongxin/phabricator,WuJiahu/phabricator,memsql/phabricator,tanglu-org/tracker-phabricator,ide/phabricator,freebsd/phabricator,hshackathons/phabricator-deprecated,NigelGreenway/phabricator,memsql/phabricator,UNCC-OpenProjects/Phabricator,codevlabs/phabricator,wikimedia/phabricator,christopher-johnson/phabricator,gsinkovskiy/phabricator,aswanderley/phabricator,vuamitom/phabricator,wxstars/phabricator,UNCC-OpenProjects/Phabricator,kalbasit/phabricator,folsom-labs/phabricator,coursera/phabricator,optimizely/phabricator,aik099/phabricator,memsql/phabricator,aswanderley/phabricator,sharpwhisper/phabricator,gsinkovskiy/phabricator,coursera/phabricator,shl3807/phabricator,Khan/phabricator,matthewrez/phabricator,kanarip/phabricator,Symplicity/phabricator,librewiki/phabricator,zhihu/phabricator,wusuoyongxin/phabricator,codevlabs/phabricator,benchling/phabricator,kanarip/phabricator,dannysu/phabricator,hshackathons/phabricator-deprecated,MicroWorldwide/phabricator,leolujuyi/phabricator,memsql/phabricator,cjxgm/p.cjprods.org,denisdeejay/phabricator,hach-que/unearth-phabricator,freebsd/phabricator,matthewrez/phabricator,kwoun1982/phabricator,MicroWorldwide/phabricator,memsql/phabricator,kwoun1982/phabricator,shrimpma/phabricator,huaban/phabricator,parksangkil/phabricator,wxstars/phabricator,aik099/phabricator,huangjimmy/phabricator-1,phacility/phabricator,a20012251/phabricator,huangjimmy/phabricator-1,wikimedia/phabricator-phabricator,r4nt/phabricator,christopher-johnson/phabricator,r4nt/phabricator,akkakks/phabricator,schlaile/phabricator,kalbasit/phabricator,wikimedia/phabricator,wangjun/phabricator,wikimedia/phabricator,Automatic/phabricator,phacility/phabricator,vinzent/phabricator,wusuoyongxin/phabricator,Symplicity/phabricator,kalbasit/phabricator,wangjun/phabricator,benchling/phabricator,hach-que/phabricator,kwoun1982/phabricator,leolujuyi/phabricator,hach-que/unearth-phabricator,hach-que/phabricator,aswanderley/phabricator,devurandom/phabricator,ide/phabricator,jwdeitch/phabricator,r4nt/phabricator,hach-que/phabricator,wangjun/phabricator,Drooids/phabricator,kalbasit/phabricator,wangjun/phabricator,cjxgm/p.cjprods.org,huangjimmy/phabricator-1,a20012251/phabricator,gsinkovskiy/phabricator,vuamitom/phabricator,zhihu/phabricator,cjxgm/p.cjprods.org,Automattic/phabricator,Automatic/phabricator,ide/phabricator,NigelGreenway/phabricator,hach-que/phabricator,zhihu/phabricator,wikimedia/phabricator-phabricator,huangjimmy/phabricator-1,zhihu/phabricator,hach-que/unearth-phabricator,wxstars/phabricator,vuamitom/phabricator,shl3807/phabricator,folsom-labs/phabricator,benchling/phabricator,eSpark/phabricator,leolujuyi/phabricator,UNCC-OpenProjects/Phabricator,matthewrez/phabricator,r4nt/phabricator,Automattic/phabricator,Automatic/phabricator,parksangkil/phabricator,wikimedia/phabricator-phabricator,Soluis/phabricator,ryancford/phabricator,MicroWorldwide/phabricator