簡體   English   中英

MVC表單數據提交給控制器

[英]MVC form data submission to controller

我正在設法部署一個非常簡單的實現,包含注冊表單,為了演示目的,我選擇使用MVC模式。

我的一個小問題是,當我按下提交按鈕時,我希望通過適當的控制器方法處理提交的數據。

例如:

在視圖部分中,我聲明了這樣的形式:

<form action="controller/validate" method="post"/>

我假設這是一個與路由相關的事情,但我很好奇是否可以建議另一種方式。

-

問候,

西奧

路由器可以像switch語句一樣簡單,而不是小型站點的完整路由器:

switch($_SERVER['REQUEST_URI']) {
    case 'controller/validate':
        $view = new \Views\User\Registration();
        $controller = new \Controllers\UserRegistration($view);
        $method = 'validate';
        break;

    default:
        $view = new \Views\Error\NotFound();
        $controller = new \Controllers\Error($view);
        $method = 'notFound';
        break;
}

echo $controller->$method();

另請注意,您不必根據當前路徑執行相對URL,而是通常希望對文檔根執行相對URL:

<form action="/controller/validate" method="post"/>

注意前導斜杠。

以上只是一個簡單的(未經測試的)半偽代碼示例

通常,您可以通過路徑 (如POST /register )訪問控制器 在引導程序文件中為此路由分配控制器操作。 一些偽代碼:

$framework->route('GET', '/register',
                  'RegistrationController::action_form');
$framework->route('POST', '/register',
                  'RegistrationController::action_submit');

另一個方法是將路由直接映射到控制器(一些框架這樣做,我相信Kohana就是其中之一),如下所示:

  • 路線: /register/submit
  • 解析為: RegisterContoller::action_submit()
  • 請求方法(標准HTTP中的GETPOSTPUTDELETE )的管理發生在操作方法中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM