代码之家  ›  专栏  ›  技术社区  ›  johnny

如何在用于MVC的PHP页面之间传递值?

  •  3
  • johnny  · 技术社区  · 14 年前

    PHP程序如何在模型、视图和控制器页之间传递值?例如,如果一个控制器有一个数组,它如何将其传递给视图?

    编辑:

    谢谢你的回答。我看到其中的两个声明组件在同一个页面中,但是当我看到类似于codeigner的东西时,我看到了模型、视图和控制器的三个单独的PHP页面。

    6 回复  |  直到 9 年前
        1
  •  6
  •   cdnicoll    14 年前

    <?php
    
    class Controller {
        public function __construct() {
            $arr = array("a","b","c");
    
            $myView = new View($arr);
        }
    }
    
    class View {
    
        private $content;
    
        public function __construct($content) {
            $this->content = $content;
            include_once('myPage.inc.html');
        }
    }
    
    
    ?>
    
        2
  •  2
  •   villecoder    14 年前

    $data = array(
               'title' => 'My Title',
               'heading' => 'My Heading',
               'message' => 'My Message'
          );
    
    $this->load->view('blogview', $data);
    

    blogview.php

    <html>
       <head><title><?= $title ?></title></head>
       <body>
          <h2><?= $heading ?></h2>
          <p><?= $message ?></p>
       </body>
    </html>
    

        3
  •  1
  •   Geoff Kendall    12 年前

    <form action = 'form-exec.php' method = 'POST'>
    ---some set of  possible user inputs goes here
    <input name='submit' type='submit' value='Go'>
    </form>
    

    header("location: theinputform.php");
        exit;
    

        4
  •  1
  •   m_eric    9 年前

    class Controller {
            public $model;
            ...
            public function display($viewId,$dataId,$data)
            {
              $url = $this->getViewURL($viewId);
              $this->loadView($url,$dataId,$data);              
            }
    
            public function getViewURL($key)
            {
                $url = 'view/list_view.php';
    
                if($key == 'create')
                {
                    $url = 'view/create_view.php';
                }
                else if($key == 'delete')
                {
                    $url = 'view/delete_view.php';
                }
    
    
                return $url;            
            }
    
            public function loadView($url,$variable_name, $data)
            {
                $$variable_name = $data;
                include $url;
            }
    }
    
        5
  •  0
  •   Your Common Sense    14 年前


        6
  •  -2
  •   rahim asgari    14 年前