사용자 지정 컨트롤러에서 양식을 사용하십니까?

ifusion

아래에 따라를 만들고 Register_Controller설정했습니다 route. RegisterForm은 잘 렌더링되지만 '등록'을 클릭하면 다음 URL로 이동하고 http://website.com/Register_Controller/RegisterForm'페이지를 찾을 수 없음'을 표시하므로 doRegister메소드에 맞지 않습니다 .

내가 도대체 ​​뭘 잘못하고있는 겁니까?

Routes.yml

---
Name: mysiteroutes
After: framework/routes#coreroutes
---
Director:
  rules:
    'register': 'Register_Controller'

Register_Controller.php

<?php


class Register_Controller extends Page_Controller {
    private static $allowed_actions = array(
        'RegisterForm'
    );

    public function index() {
        return $this->renderWith(array('RegisterPage', 'Page'));
    }

    public function RegisterForm(){
        return new RegisterForm($this, 'RegisterForm');
    }
}

RegisterForm.php

<?php

class RegisterForm extends Form {
    public function __construct($controller, $name) {
        $fields = new FieldList(
            TextField::create('FirstName'),
            TextField::create('Surname'),
            TextField::create('Email'),
            PasswordField::create('Password'),
            PasswordField::create('ConfirmPassword'),
            TextField::create('Username')

        );

        $actions = new FieldList(
            new FormAction('doRegister', 'Register')
        );

        $validator = new RequiredFields(
            'Email', 'Password', 'ConfirmPassword', 'Username'
        );

        parent::__construct($controller, $name, $fields, $actions, $validator);

        $this->disableSecurityToken();

        if (Session::get('RegisterFormData')) {
            $this->loadDataFrom(Session::get('RegisterFormData'));
        }
    }

    public function doRegister($data, $form) {

        $checkIfEmailExsists = Member::get()->filter('Email', $data['Email'])->first();
        $registerFormData = Session::set('RegisterFormData', $data);

        if ($checkIfEmailExsists) {
            $form->addErrorMessage('Email', 'This email already exists', 'bad');
            return $this->controller->redirectBack();
        }

        $member = new Member();
        $form->saveInto($member);
        $password = $data['Password'];
        $member->changePassword($password);
        $member->write();
        $member->addToGroupByCode('administrators', 'Administrators');
        $member->logIn();
        Session::clear('RegisterFormData');
        return $this->controller->redirect($this->controller->Link('thanks'));
    }
}

RegisterPage.ss

<h2>Register Here</h2>

$RegisterForm
그렉 스 미르 노프

양식이 컨트롤러에서 기본 링크를 가져 오려고하지만 사용자 지정 경로 컨트롤러에서 찾을 수 없기 때문에 컨트롤러 이름을 사용합니다. Link () 메서드를 추가해야합니다.

class Register_Controller extends Page_Controller {
    public function Link($action = null) {
        return Controller::join_links(Director::baseURL(), '/register/', $action);
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Sonata Admin Bundle에서 CRUD 컨트롤러를 사용하여 사용자 지정 양식을 만드는 방법은 무엇입니까?

분류에서Dev

사용자 지정 양식 값을 사용자 지정 컨트롤러 작업에 전달

분류에서Dev

C #에서 사용자 지정 양식 컨트롤을 만드는 방법

분류에서Dev

컨트롤러에서 사용자 이름을 검색하지 않습니까?

분류에서Dev

양식에서 사용자 정의 컨트롤 크기 조정

분류에서Dev

Generic.xml에서 다른 사용자 지정 컨트롤을 사용하는 사용자 지정 컨트롤을 만들 수 있습니까?

분류에서Dev

Designer 지원을 사용하여 양식을 사용자 정의 컨트롤에 속성으로 추가

분류에서Dev

컨트롤러 As 구문을 사용하여 각도 1.5에서 양식 재설정 오류

분류에서Dev

Xamarin 양식-피켓 컨트롤을 사용자 지정하는 방법

분류에서Dev

모델을 사용하지 않고보기에서 컨트롤러에 제출 한 후 양식 값을 검색하는 방법은 무엇입니까?

분류에서Dev

컨트롤러 내부에서 액션을 사용하십니까?

분류에서Dev

양식에서 렌더링되도록 다른 사용자 지정 컨트롤에 사용자 지정 컨트롤을 올바르게 추가하려면 어떻게해야합니까?

분류에서Dev

RequestMapping을 사용하여 컨트롤러의 두 가지 다른 메서드에 양식을 매핑하려면 어떻게해야합니까?

분류에서Dev

뷰 컨트롤러의 배경에서 사용자 지정 색상을 설정하는 방법

분류에서Dev

컨트롤러에서 사용자 지정 지시문 추가

분류에서Dev

각도 컨트롤러에서 사용자 지정 지시문을 호출하는 방법

분류에서Dev

Laravel에 사용자 정의 양식 요청을 포함하면 컨트롤러가 올바르게 작동하지 않습니다.

분류에서Dev

Yii-컨트롤러에서 액세스 할 수있는 양식에 사용자 정의 필드를 추가하는 방법은 무엇입니까?

분류에서Dev

Web API 컨트롤러에 대한 여러 파일이있는 사용자 지정 양식 데이터

분류에서Dev

사용자 정의 컨트롤의 linklabel을 사용하고 값을 양식에 전달

분류에서Dev

여러 사용자 지정 컨트롤이 컨트롤 가시성에 영향을줍니다.

분류에서Dev

하나의 컨트롤러 작업으로 여러 페이지에서 사용되는 하나의 양식

분류에서Dev

사용자 지정 컨트롤에서 단추를 만들어 onClick 이벤트를 발생시키고 사용자 지정 컨트롤이있는 기본 양식에서 처리하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 지시문 양식 컨트롤을위한 AngularJS 사용자 지정 양식 유효성 검사기

분류에서Dev

WPF를 사용하지 않고 Silverlight 5에서 generic.xaml을 사용하여 사용자 지정 컨트롤을 만드는 방법은 무엇입니까?

분류에서Dev

양식에 사용자 정의 컨트롤을 추가 할 때 단추 크기가 조정되지 않도록하려면 어떻게해야합니까?

분류에서Dev

WPF에서 부모 사용자 정의 컨트롤의 왼쪽에 자식 사용자 정의 컨트롤을 배치하고 싶습니다.

분류에서Dev

ASP.NET에서 사용자 지정 일반 컨트롤을 사용할 수 있습니까?

분류에서Dev

사용자 지정 클래스 드롭 다운 Xcode 8.3.2에서 사용자 지정 컨트롤러 클래스를 찾을 수 없습니다.

Related 관련 기사

  1. 1

    Sonata Admin Bundle에서 CRUD 컨트롤러를 사용하여 사용자 지정 양식을 만드는 방법은 무엇입니까?

  2. 2

    사용자 지정 양식 값을 사용자 지정 컨트롤러 작업에 전달

  3. 3

    C #에서 사용자 지정 양식 컨트롤을 만드는 방법

  4. 4

    컨트롤러에서 사용자 이름을 검색하지 않습니까?

  5. 5

    양식에서 사용자 정의 컨트롤 크기 조정

  6. 6

    Generic.xml에서 다른 사용자 지정 컨트롤을 사용하는 사용자 지정 컨트롤을 만들 수 있습니까?

  7. 7

    Designer 지원을 사용하여 양식을 사용자 정의 컨트롤에 속성으로 추가

  8. 8

    컨트롤러 As 구문을 사용하여 각도 1.5에서 양식 재설정 오류

  9. 9

    Xamarin 양식-피켓 컨트롤을 사용자 지정하는 방법

  10. 10

    모델을 사용하지 않고보기에서 컨트롤러에 제출 한 후 양식 값을 검색하는 방법은 무엇입니까?

  11. 11

    컨트롤러 내부에서 액션을 사용하십니까?

  12. 12

    양식에서 렌더링되도록 다른 사용자 지정 컨트롤에 사용자 지정 컨트롤을 올바르게 추가하려면 어떻게해야합니까?

  13. 13

    RequestMapping을 사용하여 컨트롤러의 두 가지 다른 메서드에 양식을 매핑하려면 어떻게해야합니까?

  14. 14

    뷰 컨트롤러의 배경에서 사용자 지정 색상을 설정하는 방법

  15. 15

    컨트롤러에서 사용자 지정 지시문 추가

  16. 16

    각도 컨트롤러에서 사용자 지정 지시문을 호출하는 방법

  17. 17

    Laravel에 사용자 정의 양식 요청을 포함하면 컨트롤러가 올바르게 작동하지 않습니다.

  18. 18

    Yii-컨트롤러에서 액세스 할 수있는 양식에 사용자 정의 필드를 추가하는 방법은 무엇입니까?

  19. 19

    Web API 컨트롤러에 대한 여러 파일이있는 사용자 지정 양식 데이터

  20. 20

    사용자 정의 컨트롤의 linklabel을 사용하고 값을 양식에 전달

  21. 21

    여러 사용자 지정 컨트롤이 컨트롤 가시성에 영향을줍니다.

  22. 22

    하나의 컨트롤러 작업으로 여러 페이지에서 사용되는 하나의 양식

  23. 23

    사용자 지정 컨트롤에서 단추를 만들어 onClick 이벤트를 발생시키고 사용자 지정 컨트롤이있는 기본 양식에서 처리하는 방법은 무엇입니까?

  24. 24

    사용자 지정 지시문 양식 컨트롤을위한 AngularJS 사용자 지정 양식 유효성 검사기

  25. 25

    WPF를 사용하지 않고 Silverlight 5에서 generic.xaml을 사용하여 사용자 지정 컨트롤을 만드는 방법은 무엇입니까?

  26. 26

    양식에 사용자 정의 컨트롤을 추가 할 때 단추 크기가 조정되지 않도록하려면 어떻게해야합니까?

  27. 27

    WPF에서 부모 사용자 정의 컨트롤의 왼쪽에 자식 사용자 정의 컨트롤을 배치하고 싶습니다.

  28. 28

    ASP.NET에서 사용자 지정 일반 컨트롤을 사용할 수 있습니까?

  29. 29

    사용자 지정 클래스 드롭 다운 Xcode 8.3.2에서 사용자 지정 컨트롤러 클래스를 찾을 수 없습니다.

뜨겁다태그

보관