protected function _addDefaultContextProviders() { $this->addContextProvider('orm', function ($request, $data) { if (is_array($data['entity']) || $data['entity'] instanceof Traversable) { $pass = (new Collection($data['entity']))->first() !== null; if ($pass) { return new EntityContext($request, $data); } } if ($data['entity'] instanceof EntityInterface) { return new EntityContext($request, $data); } if (is_array($data['entity']) && empty($data['entity']['schema'])) { return new EntityContext($request, $data); } }); $this->addContextProvider('form', function ($request, $data) { if ($data['entity'] instanceof Form) { return new FormContext($request, $data); } }); $this->addContextProvider('array', function ($request, $data) { if (is_array($data['entity']) && isset($data['entity']['schema'])) { return new ArrayContext($request, $data['entity']); } }); }