2011-02-03 1 views
0

젠드 1.11을 사용하고 있습니다. 나는 사용자로부터 입력을 받아서 잘 작동하는 데이터베이스 테이블에 데이터를 저장하는 폼을 가지고있다.Zend PHP 프레임 워크에서 한 모델에 대해 두 개의 폼을 구현하는 방법

그러나 사용자가 Excel 워크 시트를 사용하여 여러 레코드를 데이터베이스 테이블로 가져올 수있는 기능을 구현하고자합니다. 나는 이것을 위해 PHPExcel 라이브러리를 사용하고 있습니다.

현재 모든 양식은 \library\App\Form\이고 이름 지정 규칙은 ModelNameForm.php입니다. 파일 업로드를 수용하는 모델에 대해 두 번째 양식을 어떻게 추가합니까?

많은 감사,

시드.

답변

0

전체 솔루션은 간단합니다.

나는 MVC 접근법에 익숙하지만 처음으로 Zend를 사용하기 때문에 어려움을 발견했습니다.

저는 CakePHP를 사용하기 전에 개발자가 규칙을 따르도록 요구하고 Zend는 사용자가 자신의 규칙을 작성할 수 있도록했습니다.

내가하고있는 젠드 응용 프로그램은이 명명 규칙이 젠드의 일부인지 아니면 잘 못했는지에 대해 혼란스러워했던 자신의 이름 지정 규칙 (ModelNameForm.php)을 사용하는 동료가 작성했습니다. 폼 클래스는 무엇이라도 지명 될 수 있습니다.

Zend IRC 채널을 방문한 후에 다른 양식과 함께 다른 양식 클래스를 만들고 원하는대로 이름을 지정하고 사용하는 컨트롤러의 기능에 지정할 수 있다고 들었습니다.

그래서 방금 다른 양식 클래스를 작성하고이를 사용하는 함수에 지정했습니다.

그러나이 작업을 수행 한 후 첫 번째 양식과 다른 필드를 사용 했으므로 두 번째 양식을 만드는 것이 필요하지 않으며 첫 번째 양식 클래스의 if 문을 사용하여 처리 할 수 ​​있음을 알았습니다 .

0

양식의 클래스 인스턴스를 저장할 수있는 모델에 대해 속성을 만들어야하는 이유는 무엇입니까? 그런 다음 예를 들어와 같은 방법을 만들 수 있습니다. 모델에서 getForm()을 사용하면 양식을 이름으로 액세스 할 수 있습니다. 그것이 내가 처음 생각할 때 생각하는 것입니다.

1

비슷한 레이아웃이 있지만 양식 클래스에서 정적 함수 호출을 사용하여 특정 형식의 양식을 가져옵니다. 예를 들어

class User_Model_Form extends My_Form 
{ 
    // All functions can be passed a model to pre-populate the form 
    // when editing and existing model 

    public static function getRegisterForm($model = null) 
    { 
     // Build and return form here 
    } 

    public static function geLoginForm($model = null) 
    { 
     // Build and return form here 
    } 

    public static function getChangePasswordForm($model = null) 
    { 
     // Build and return form here 
    } 

    // Etc 
} 
+0

이 방법은 한 모델에 대해 많은 다른 양식이있는 경우에 유용합니다. 감사. – Sid

관련 문제