Looking good :). I think this method with its content could also be in the AbstractAdapter. The filterItems method can also be in the AbstractAdapter, but without using array_values. Then you will need to override filterItems because datatables expects an indexed array.