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, Ed, biapar, Willr, Ingo, swaiba

setFormAction causes error

Go to End

2 Posts   826 Views


Community Member, 48 Posts

13 June 2012 at 11:38am

I have a signup form:

function SignupForm() {
		$fields = new FieldSet( 
			new TextField("FirstName", "First name"),
			new TextField("Surname"),
			new EmailField("Email", "Email address")
      	$submitAction = new FieldSet(new FormAction("SignupAction", "Sign up"));
      	$required = new RequiredFields("Email");
		$SignupForm = new Form($this, "SignupForm", $fields, $submitAction, $required); 
		return $SignupForm; 
	function SignupAction($data, $form) {
		$member = new Member();
		if($group = DataObject::get_one('Group', "ID = $this->defaultGroupID")){

Which runs fine from the homepage, however it appears on every page and sub page on the site so I need to set the form action.

I have tried adding this:


before return $SignupForm and I get the following error when I submit the form (from anywhere)

Missing argument 2 for Page_Controller::SignupAction()

function SignupAction($data, $form) {
70 		$member = new Member();
71 		$form->saveInto($member);

What is going on here?



Community Member, 254 Posts

13 June 2012 at 1:32pm

If it's appearing on all pages it sounds like the form might be declared on the Page.php class. If thats right you should make a subpage for the form. Make SignUp.php cut paste the form functions into it. Make and assign the behavior to the page of your choice.