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.

General Questions

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Director::direct('SOME_URL') requires a model as second parameter...


Reply

5 Posts   290 Views

Avatar
bxxxxx

5 January 2014 at 6:15am Community Member, 8 Posts

I try to redirect from one page to another and I get a Php-Notice about a missing model parameter

[Notice] Undefined variable: model
POST /home/UserDataForm

Line 145 in /srv/htdocs/framework/control/Director.php

I tried to add something like

$model = new Page();

but then, it outputs a blank screen.

I know, this is a Notice and almost invisible on production but it keeps me in Dev-Mode from having a clean output.

Is there another way to redirect a user from A to B?

Thank you very much in advance.

Best regards
Stefan

Avatar
Pigeon

5 January 2014 at 8:34am Community Member, 243 Posts

Director::direct() lsnt used for browser redirections.

You want redirect on a controller object or response object

Avatar
bxxxxx

5 January 2014 at 8:54am Community Member, 8 Posts

Ok,

I think I found it.

I had in mind some SS 2.4 snippets

Director::redirect('SOME_URL');

but this is now:

$this->redirect('SOME_URL');

as long as I am in a Controller-Object.

Is that right?

Avatar
Bimble

8 January 2014 at 1:39am Community Member, 16 Posts

What if you are not in a Controller object?

For example, I want to redirect after executing custom Gridfield row action?

Avatar
martimiz

8 January 2014 at 4:27am (Last edited: 8 January 2014 4:28am), Forum Moderator, 1091 Posts

Afaik you are always 'in a controller', meaning there's always a Controller active, based on a URL, making sure the work gets done...

You can find the current controller by using Controller::curr()