视图和控制器如何“连接”

时间:2019-01-29 05:25:55

标签: php templates

我正在跟踪mvc教程,但是我不明白我的代码如何以及为什么不起作用。

所以我有一个像这样的控制器。

public function indexAction()
{
    $formSent = false;

    if (isset($_POST['send'])){
        $formSent = true;
    }

    $this->view->setVars([
        'name' => 'Stefan',
        'formSent' => $formSent
    ]);
}

和位于视图/索引中的我的表单

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Forumlar</title>
</head>

<body>
 <form method="post" action="/index">
    <table>
        <tr>
            <td>Vorname</td>
            <td><input type="text" name="vorname"></td>
        </tr>
        <tr>
            <td>Nachname</td>
            <td><input type="text" name="nachname"></td>
        </tr>
        <tr>
            <td>PLZ</td>
            <td><input type="number" name="plz"></td>
        </tr>
    </table>
    <button type="submit" name="send">Send</button>
 </form>
</body>

<?php
echo  $name;

if ($formSent){
    echo "Form is Sent!";
}
?>

使我的问题更容易理解以及问题出在哪里。

因此在此情况下,回显$ name不会输出“ Stefan”。 尽管使用表单完成的所有操作均不起作用。

例如,转储_POST将为空,如果formSent语句不起作用,我将无法使用。

那么我如何精确地“连接”这两个或如何工作?

谢谢。

编辑:这是我发送表格后的意思

  

找不到对象!在此服务器上找不到请求的URL。的   引荐页面上的链接似乎有误或已过时。请   将该错误告知该页面的作者。

     

如果您认为这是服务器错误,请与网站管理员联系。

     

错误404

编辑2:

是的,我确实将它保存在我的IndexController中

protected $view;

public function setView(\Mvc\Library\View $view)
{
    $this->view = $view;
}

1 个答案:

答案 0 :(得分:0)

要将视图连接到控制器,您需要在控制器中加载视图页面。

在控制器中,

公共功能index(){

$this->load->view('YOUR PAGE NAME IN VIEW FOLDER');

}