Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Data Model Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Custom Controller limitations compared to ContentController?

Go to End

2 Posts   2298 Views


Community Member, 3 Posts

21 December 2009 at 1:30am

Hi Community,

I have a few questions about custom controllers:

From the documentation I read here

I figured I should use a customer controller for my data instead of content controllers as my model is not content / page oriented.

So I created a first prototype using a custom controller as shown here:

and rendered it with $this->renderWith('MyTemplate') which all works fine so far.

However, I am missing some important functionality compared to using ContentController and SiteTree. Specifically:

- Can I use the template Hierarchy? renderWith() only seems to find templates in the root themes directory, but doesn't seem to be able to compose themes from templates and layouts. Is this strictly connected with the SiteTree model or can I enable the template/layout composing with custom controllers and renderWith as well?

- From the template, I can not access objects as I used to with ContentController, where I simply had a method MyObject() that would get called when I access $MyObject in the template. Again, is this functionality not possible with custom controllers, or what can I do to use this? Or, generally, how can I access my model from the template using my custom controller? I tried to use $this->customize() which appeared to be the answer, however this is also a ContentController method if I am not mistaken.


Community Member, 66 Posts

7 August 2012 at 2:20am

Has there ever been a solution to this? It seems that class methods are not executed from <% control %> loops and this is exactly the issue. It has come so far actually that even forTemplate() is proclaimed on the controller, preventing custom Class templates...

Any help/insight on this would be greatly appreciated!