php - Laravel 5.3 : hidden fields are returned in JSON response -
first of i've searched web answer , not find quite astonished me. maybe did not search right terms, please excuse me in advance if case.
so defined in model fields hidden :
protected $hidden = [     'hasexpired', 'hasbeentreated', 'reporterid' ];   and how output results :
return response()->json([          'latestreports' => $latestreports        ]);   and $latestreports variable defined somewhere else :
$query = db::table('reports')             ->where('catid', 0) ;  $latestreports = $query->where('hasexpired', 0)             ->orderby('created_at', 'desc')             ->get();   how on earth possible these fields still appear in response on client server, , above should correct prevent them appearing. in other word how can make hidden array enforced ?
please note: other models (e.g. users) hidden array enforced, hidden fields not appear in response.
any appreciated.
the reason hidden fields shown fetch data database table directly using db::table() instead of using model. $hidden array used when serialising eloquent models json , you're bypassing eloquent layer way query has no way of knowing columns should hidden.
replace
$query = db::table('reports')->where('catid', 0);   with
$query = report::where('catid', 0);      
Comments
Post a Comment