-
Notifications
You must be signed in to change notification settings - Fork 0
Extending Record and Type
Carlos Rodrigues edited this page Feb 2, 2018
·
1 revision
- DEFAULT_NAMESPACE - Define que a classe padrão a ser carregada é Cliente_Record, e não Record
namespace Cliente;
class Record extends \Jp7\Interadmin\Record {
const DEFAULT_NAMESPACE = 'Cliente\\';
}
class Type extends \Jp7\Interadmin\Type {
const DEFAULT_NAMESPACE = 'Cliente\\';
}- ID_TIPO - Define o id_tipo padrão para a classe
namespace Cliente;
class Carro extends Record { // Cliente\Record, mesmo namespace
}
class CarroTipo extends Type {
const ID_TIPO = 1234;
}
// Exemplo de uso, veja que não é necessário passar o id_tipo no construtor,
// porque está definido na constante ID_TIPO
$carroTipo = new CarroTipo;
$carros = $carroTipo->records()->get(); // prefira usar Carro::all()Campos do tipo special não tem um id_tipo especificado, como aconteceria com um select.
- Para que o campo special retorne um objeto ao invés de um valor é necessário que na tela de edição do Tipo seja alterado o campo de Normal para Por Registros, ou outra das opções disponíveis.
- Para definir o tipo do campo (para poder fazer um join, ou para gerar um webservice, por exemplo) é necessário sobrescrever a função getCampoTipo()
namespace Cliente;
class CursoTipo extends Type {
...
public function getCampoTipo($campo) {
if ($campo['tipo'] === 'special_2') {
return new EscolaTipo;
}
return parent::getCampoTipo($campo);
}
...
}