protected function forward($uri)
{
$uriParts = explode('/', $uri);
return $this->dispatcher->forward(
array(
'controller' => $uriParts[0],
'action' => $uriParts[1]
)
);
}
That method from ControllerBase class you are using, is a "userspace" method, not "Phalcon original". It reads $uri, explodes it by / and passes to dispatcher only first two elements of that $uri (for example, objects/edit), as controller($uriParts[0]) and action($uriParts[1]) respectively. So there's no difference between that: objects/edit or objects/edit/someparam or objects/edit/someparam/andanotherparam - all it passes to $this->dispatcher->forward() is
'controller' => 'objects',
'action' => 'edit'
But if you use that $this->dispatcher->forward() "Phalcon original" method, you have the flexibility to control what to pass and where:
$this->dispatcher->forward(array(
'namespace' => 'somenamespace',
'controller' => 'somecontroller',
'action' => 'someaction',
'params' => array(1, 2, 3)
));
For more information about dispatcher, read this article from docs.
And about Tag::linkTo() - all it do is just generating links in Phalcon application. For more information read-the-docs.