2011-08-25 3 views
0

Zend Framework의 소규모 마케팅 프로젝트에서 프로젝트의 백 오피스는 현재 캠페인 컨트롤러와 미니 사이트 컨트롤러의 두 컨트롤러로 이루어져 있습니다. 사용자가 양식이있는 캠페인을 만든 다음이 캠페인에 연결된 두 번째 양식이있는 미니 사이트를 만들어야하므로 미니 사이트의 데이터를 저장할 때 캠페인 및 사용자 ID를 가져와야합니다.Zend가 컨트롤러간에 변수를 전달합니다.

가장 좋은 방법은 무엇이며 그 이유는 무엇입니까? 세션 객체에서 변수를 전달해야합니까?

/backoffice/minisite/create/:userid/:campaign/ 

편집 : 나 나는 같은 경로를 통해 해당 변수를 전달해야 사용자가 기록하고 제안으로 내가 경로 옵션을 사용 캠페인

답변

0

나는 사용자가 이러한 작업을 수행하는 데 필요한 계정이 있어야합니다. 그렇다면 캠페인 및 미니 사이트가 어떤 방식 으로든 관련 될 것입니다. 나는 데이터베이스의 어떤 형태로이 것들을 저장하고 가져올 것이다.

인증 된 사용자가없고 실제로 두 개의 변수를 다른 작업으로 전달해야하는 경우 url 매개 변수를 사용하지만 사용자가 혼란스러워 할 수 있다는 사실을 알고 있으면 예기치 않은 많은 일이 발생할 수 있습니다. 세션에 저장하는 것은 그런 식으로 조작하기가 더 어렵습니다.

따라서 인증이 필요없고 사이트가 공개이면 세션을 사용하고, 그렇지 않으면 둘 다 사용하지 말고 저장 장치를 사용하십시오.

+0

좋은 점은 경로를 사용하는 것이 좋은 해결책 인 것처럼 보이지만 다른 사용자의 캠페인을 수정하려는 것처럼 URL 매개 변수가 엉망인 경우 사용자가 수행중인 작업을 확인한 다음 리디렉션하는 몇 가지 추가 작업이 필요합니다. – DoesNotCompute

+0

경로 및 추가 데이터베이스 데이터를 의미합니다. – DoesNotCompute

0

를 만들 때 인증됩니다. 사용 세션, 디버그, 테스트

+0

글쎄, 그것은 경로 옵션을 사용하여 확장하기 쉽습니다. – markus

+0

예, 실제로 다시 한번 이해하면 쉽게 쉽게 이해할 수있을 것입니다. 나는 당신이 1 년 정도 후에 올 때를 생각할 때, URL에서 볼 수 있기 때문에 지나가고있는 것을 쉽게 볼 수 있다면 다시 이해하는 것이 훨씬 더 빠를 것입니다. – ChrisA

+0

또한 사용자가 여러 캠페인을 만든 다음 미니 사이트를 만들도록하려면 어떻게할까요? 또는 로그 아웃하고 로그인하기 전에 다시 로그인하십시오. 나는 캠페인 옆에'minisite/create' 액션으로가는 것이 더 쉽다고 생각합니다. – ChrisA

1

가정 사용자가이 작업을 수행하려면 로그인해야 등 미래에 확장 할 매우 어려운 것을 끝낼 것입니다, 당신은 당신이 Zend_Auth 정체성에 필요한 사용자 정보를 저장할 수

그렇지 않은 경우 데이터를 Zend_Session의 일반 세션 var에 저장하거나 경로로 리디렉션 할 수 있습니다. 어느 옵션이 좋으므로, 귀하와 귀하의 신청서에 가장 적합한 것을 선택하는 것은 귀하에게 달려 있습니다.

1

두 컨트롤러 간의 정보 전달을 위해 가장 좋은 방법은 세션을 사용하여 값을 전역으로 저장하는 것입니다. :-)