Thinkphp中的allowField方法可以智能过滤掉不属于数据表的字段,而Laravel中却并没有类似的方法,因此自己编写了一个方法用于Laravel实现类似Thinkphp中的allowField功能。


public static function allowFields($data,$table)
{
  $fields = Schema::getColumnListing($table);
  $pFields = array_keys($data);
  $diffs= array_diff($pFields,$fields);
  if(!empty($diffs)){
    foreach($diffs as  $v){
        unset($data[$v]);
    }
  }
  return $data;
}

使用前要先引用Schema门面,$data是要使用的数据,$table是数据表名。