public function startup()
{
try {
$id = $this->getParameter('id');
if ($id !== NULL && ($id = $this->isValidId($id)) === FALSE) {
throw BadRequestException::methodNotSupported('Url must follow convention /presenter/id/relation/relationId.' . ' Valid ID is only positive, non zero integer.');
}
$action = $this->getAction();
if ($action === 'create' && $id) {
$this->changeAction('update');
}
parent::startup();
if (strpos($action, 'read') === FALSE) {
$this->inputData = $this->inputData ?: $this->getInputData();
}
if (($relation = $this->getParameter('relation')) !== NULL) {
$this->table = $this->db->table($relation)->where($this->getTableName(), $id);
$this->deepListing = $this->queryFilter = NULL;
} else {
$this->table = $this->db->table($this->getTableName());
}
} catch (BadRequestException $ex) {
$this->sendErrorResource($ex);
}
}