mvc 모드에서 모델의 역할에 대한 질문

WBOY
풀어 주다: 2016-10-17 09:30:06
원래의
1365명이 탐색했습니다.

mvc의 m(모델)은 주로 데이터를 조작하는 데 사용되는 모델을 나타냅니다. 따라서 간단한 데이터 처리를 C 계층에서 수행해야 하는지 아니면 M 계층에서 수행해야 하는지 살펴보겠습니다.

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn->query($sql);
$data = $result->getAll();</code>
로그인 후 복사
로그인 후 복사

위 코드에서 데이터를 id를 키로 하는 배열로 변경해야 하는 경우 이 작업을 레이어 m에서 수행해야 할까요, 아니면 레이어 c에서 수행해야 할까요?

답글 내용:

mvc의 m(모델)은 주로 데이터를 조작하는 데 사용되는 모델을 나타냅니다. 따라서 간단한 데이터 처리를 C 계층에서 수행해야 하는지 아니면 M 계층에서 수행해야 하는지 살펴보겠습니다.

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn->query($sql);
$data = $result->getAll();</code>
로그인 후 복사
로그인 후 복사

위 코드에서 데이터를 id를 키로 하는 배열로 변경해야 하는 경우 이 작업을 레이어 m에서 수행해야 할까요, 아니면 레이어 c에서 수행해야 할까요?

개인 의견: M 레이어가 더 좋습니다
MVC를 사용하기 때문에 결합도를 줄이고 확장성을 향상시키기 위한 것입니다.
혼합된 메시지를 작성하는 것은 위의 두 가지 목적에 부합하지 않습니다.
물론 프로젝트 자체의 규모가 크지 않다면 실제로 mvc 구조를 사용할 필요는 없습니다.

예제의 문제에 따르면 클로저 함수 메서드를 사용할 수 있다고 생각합니다. 예를 들어 모델 클래스에서 dataFormat 메서드를 정의한 다음 데이터를 반환할 때 이 dataFormat을 사용하면 됩니다. 전달되었습니다. 더 유연한 반환 데이터 처리를 위해 클로저 기능을 사용하세요.

실제로 모든 것이 작동합니다. 인터페이스 요구 사항에 따라 다르므로 너무 걱정하지 마세요! 이 질문 때문에 선생님께도 C 레이어는 페이지 점프 제어와 요청 데이터 검색 인터페이스 캡슐화를 담당하고, M 레이어는 C 레이어 호출 인터페이스의 매개변수 확인과 데이터 처리를 담당한다고 말씀드렸습니다. 그리고 데이터를 반환하는 것입니다. 실제로 이것은 우리 자신의 프로그램 설계의 필요에 따라 수행됩니다.

너무 걱정하지 마세요

모델의 출현은 모델의 모든 데이터 계층을 제어하는 ​​것입니다.

<code>耦合性降低了、可读性、维护、扩展性都得到了提高。
</code>
로그인 후 복사

mvc의 C는 모델과 뷰를 연결하는 데 사용됩니다

MVC의 핵심 아이디어는 인터페이스(View), 로직(Controller), 데이터(Model)를 분리하는 것입니다.
웹 애플리케이션의 경우 C가 M을 호출하고 V를 출력하는 과정입니다.

페이지 컨트롤러:

<code>/post.php?a=create
/post.php?a=read&id=1024
/post.php?a=update&id=1024
/post.php?a=delete&id=1024</code>
로그인 후 복사

모델(CRUD):

<code>function post_create() {}
function post_read() {}
function post_update() {}
function post_delete() {}</code>
로그인 후 복사

보기:
/view/post.php

데이터 모델 게시물에 대한 CRUD 작업 함수는 물론 다른 컨트롤러에서 호출할 수 있도록 /include/funclass.php에 요약되어 있음을 알 수 있습니다. 간단히 말해서, 이 작업을 다른 컨트롤러에서 사용해야 한다고 생각하면 됩니다. , 그러면 함수나 클래스로 캡슐화하고 "공유"를 위해 funclass.php에 넣는 것을 고려할 수 있습니다.

컨트롤러에서 조작해야 합니다

굵은 글씨请输入代码



관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿