laravel按使用者型別來顯示或隱藏欄位
阿新 • • 發佈:2018-11-26
在api開發中,有時候需要對自己以外的其他普通使用者隱藏欄位,比如隱藏手機號。而對於admin使用者,則又不需要隱藏手機號。
所以,需要設計一種能夠簡單的根據不同使用者來顯示或隱藏欄位的方式。
方法基於laravel實現
use Illuminate\Database\Eloquent\Model; class User extends Model { /** * 重寫toArray方法 */ public function toArray(){ //獲取api使用者 $me=app(Request::class)->user("api"); if ($me!=null) { if ($me instanceof AdminUser) { //如果是admin使用者 //TODO:使用admin使用者的顯示規則 }else if($me instanceof User){ if ($me->id==$this->id) { //如果是自己 //TODO:使用面向自己的顯示規則 }else{ //如果是其他普通使用者 //TODO:使用面向其他普通使用者的顯示規則 } } } return parent::toArray(); } }
這樣實現後,就不需要針對每一個api去修改規則了