오늘은 저를 설득하려고 노력했다. 나는 데이터베이스에 대한 호출을하기 때문에 거기에 존재하는 장소가없고 컨트롤러에 있어야한다고 주장했다. (우리는 실제로 MVC를 사용하지 않는다.) MVC와 일반적으로 템플릿에서 사용되는 논리적 인 분리를 이해하고 있습니까? 아니면 제가 빠진 것이 있습니까?데이터베이스 호출 작업 누군가에
답변
네가 맞아. 그는 틀렸다.
MVC 권한을 원할 경우 데이터베이스 호출은 어떤 형식이든 관계없이 컨트롤러에 있어야합니다.
분명히 사람들이 오줌을 내며 을해야하고 그렇게 할 수는 있지만 올바른 방법은 아닙니다.
글쎄, "공식적인"규칙이나 그 어떤 것도 없지만 컨트롤러에 속한 것과 같다고 생각합니다. 디스플레이 변수를 제외하고 뷰 코드에서 아무 것도하지 않으며 if
또는 foreach
유형 루프보다 복잡한 것은 허용되지 않습니다. 확실히 데이터베이스에 액세스하는 함수를 호출하지 않습니다. 컨트롤러에 의해 모두로드되어야하며, 뷰는 표시 여부를 결정해야합니다.
실제로 컨텍스트와 범위에 따라 다릅니다.
$ obj가 컨트롤러 또는 모델 레이어입니까? 그것은 그것이 내 의견으로는 유효한지 아닌지에 대한 답을해야합니다.
다른 답변을 읽는 것에 대한 응답으로.
함수 이름 자체는 간단한 getter 메서드와 관련이 있습니다. 그것은 컨트롤러 계층을 통해 db를 호출 할 수 있습니다. 나는 말할 것이다. 특히 메모리에서 어떤 형태의 캐싱을 사용했다면 말이죠. (예를 들어 getter는 setter 일 때만 캐시 할 수 있습니다.)
그것은 그의 주장이었다 ... '첫 번째 호출 후 캐시됩니다 ...'하지만 ... 변수에 넣고보기에도 전달하면 '캐싱'됨 – SeanJA
온 디맨드 캐싱은 요청시 캐시 된 경우에만 작동합니다. 즉 첫 번째 호출에서. 다른 방법으로 의도대로 작동하지 않습니다. 이 함수의 어떤 부분이 어딘가에 전화를 걸어야합니다. 뷰 레이어가 db를 호출하지 않습니다. 그것은 객체에 대한 호출을하고 있습니다. 개체가 x를 호출하고 있습니다. – Louis
또한 실제 db 호출이이 함수에있는 경우에는 무언가 잘못되었음을 의미합니다. 그 사이에 모델 레이어가 있어야합니다. 컨트롤러 레이어를 호출하면 괜찮습니다. – Louis
- 1. 데이터베이스 작업
- 2. 다른 컨트롤러에서 작업 호출
- 3. 작업/동작 자동 호출
- 4. 다른 컨트롤러에서 작업 호출
- 5. 사진 및 데이터베이스 작업
- 6. Access 데이터베이스 작업
- 7. MVC 패턴 데이터베이스 작업
- 8. 데이터베이스 작업 모범 사례?
- 9. 효율적인 데이터베이스 작업
- 10. capistrano 작업 내에서 다단계 카피스트라노 작업 호출
- 11. SQL Server 2000 테이블 변경 작업 호출
- 12. DAL 작업 + 웹 서비스 호출 + 로깅
- 13. 제어 컨트롤러 작업 호출 순서
- 14. Siebel 8에서 작업 UI 호출
- 15. 컨트롤러 생성자에서 하위 작업 호출
- 16. Linqpad에서 OData 서비스 작업 호출
- 17. AJAX에서 WCF 서비스 작업 호출
- 18. Android SDK WebView 호출 작업
- 19. android에서 특정 시간에 작업 호출
- 20. onChange 이벤트에서 컨트롤러 작업 호출
- 21. 두 번 호출 된 작업
- 22. asp.net mvc와의 비동기 작업 호출
- 23. 데이터베이스 작업 모범 사례 팀
- 24. WPF 및 SQL 데이터베이스 작업
- 25. 방지 Linq에 실제 데이터베이스 작업
- 26. ASP.NET - Oracle 9i 데이터베이스/데이터베이스 저장 프로 시저 작업
- 27. 레일 3 : 데이터베이스 호출 최적화
- 28. asp.net mvc linq 데이터베이스 호출
- 29. 유닉스에서 SQL Server 데이터베이스 호출
- 30. Ruby에서 전자 메일을 보내기위한 작업 호출
내보기를 지원하는 항목에 투표하는 것이 정말 공평합니까? 아마도 ... 나는 정말로 그것이 괜찮다고 생각한 사람들의 이야기를 듣고 싶었다 ... 오 잘. – SeanJA