> 백엔드 개발 > PHP 튜토리얼 > 컨트롤러는 PHP의 View에 값을 전달합니다.

컨트롤러는 PHP의 View에 값을 전달합니다.

WBOY
풀어 주다: 2016-08-18 09:16:13
원래의
1941명이 탐색했습니다.

MVC 방식을 사용하여 작은 CMS를 작성하고 싶은데 컨트롤러, 모델, 뷰를 생성했는데 컨트롤러의 값을 뷰에 어떻게 쓰는지 모르겠습니다.

index.php

<code><?php
require('View/testView.php');
require('Model/testModel.class.php');
require('Controller/testController.class.php');
$testController = new testController();
$testController->show();
?>
</code>
로그인 후 복사
로그인 후 복사

testController.class.php

<code>class testController{
    function show(){
        $testModel = new testModel();
        $data = $testModel->get();
        return $data;
    }
}
</code>
로그인 후 복사
로그인 후 복사

testModel.class.php

<code>require('database.php');
get_connection();
class testModel{
    function get(){
        $sql = "SELECT * FROM db_problem";
        $res = mysql_query($sql);
        return $res;

    }
}
</code>
로그인 후 복사
로그인 후 복사

testView.php

<code><html>
<head>
    <meta charset="UTF-8">
    <title>BUG列表</title>
</head>
<body>
<table border="1px solid #bebebe" width="980px" cellpadding="1" cellspacing="0">
    <tr>
        <th width="10%">ID</th>
        <th width="70%">问题</th>
        <th width="20%">提交时间</th>
    </tr>
    <tr style="text-align: center">
        <td></td>
        <td></td>
        <td></td>
    </tr>
</table>
</body>
</html>
</code>
로그인 후 복사
로그인 후 복사

답글 내용:

MVC 방식을 사용하여 작은 CMS를 작성하고 싶은데 컨트롤러, 모델, 뷰를 생성했는데 컨트롤러의 값을 뷰에 어떻게 쓰는지 모르겠습니다.

index.php

<code><?php
require('View/testView.php');
require('Model/testModel.class.php');
require('Controller/testController.class.php');
$testController = new testController();
$testController->show();
?>
</code>
로그인 후 복사
로그인 후 복사

testController.class.php

<code>class testController{
    function show(){
        $testModel = new testModel();
        $data = $testModel->get();
        return $data;
    }
}
</code>
로그인 후 복사
로그인 후 복사

testModel.class.php

<code>require('database.php');
get_connection();
class testModel{
    function get(){
        $sql = "SELECT * FROM db_problem";
        $res = mysql_query($sql);
        return $res;

    }
}
</code>
로그인 후 복사
로그인 후 복사

testView.php

<code><html>
<head>
    <meta charset="UTF-8">
    <title>BUG列表</title>
</head>
<body>
<table border="1px solid #bebebe" width="980px" cellpadding="1" cellspacing="0">
    <tr>
        <th width="10%">ID</th>
        <th width="70%">问题</th>
        <th width="20%">提交时间</th>
    </tr>
    <tr style="text-align: center">
        <td></td>
        <td></td>
        <td></td>
    </tr>
</table>
</body>
</html>
</code>
로그인 후 복사
로그인 후 복사

먼저 $this->display('test');와 같이 컨트롤러에서 템플릿을 지정한 다음 표시 방법

에 템플릿을 포함해야 합니다.

더 복잡해지고 템플릿에 구문 설탕을 추가하려면 템플릿이 디스플레이에서 파일을 컴파일했는지 여부를 판단할 수 있습니다. 그렇지 않은 경우 컴파일을 수행합니다(기본적으로 {$test}를 $로 바꾸는 등의 일반적인 교체). this->test), 컴파일된 파일

을 포함합니다.

이렇게 하면 컨트롤러의 변수를 직접 사용할 수 있습니다

이전에 간단한 mvc 프레임워크를 작성한 적이 있으니 핵심 내용은 158번째 줄 https://github.com/eyblog/mvc...

컨트롤러에서 템플릿의 변수와 값을 데이터에 저장합니다. File_get_content는 보기 파일의 내용을 읽습니다. 템플릿 변수 식별자는 {$user} 또는 { {user}}, 정규식 일치 및 수식으로 바꾸고 마지막으로 echo
class Controller {
public $templateData = [] //템플릿 파일의 데이터 매핑 테이블을 저장합니다
; 공개 함수 인덱스(){

<code> $this->assign($key,$value);</code>
로그인 후 복사

}
공개 함수 할당($key,$value){

<code>   $this->assign($key,$value);</code>
로그인 후 복사

}
공개 함수 표시(){

<code>   /*加载view文件内容
   /*正则搜索替换
   /*输出</code>
로그인 후 복사

}
}

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