[英]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()
GET
, POST
, PUT
, DELETE
)的管理發生在操作方法中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.