[英]PHP / Zend Framework 2 / CRUD - How to structure controller for several actions, several views?
前言
我正在開發一個Web應用程序,我已經從我之前編寫的現有ASP.NET Web表單應用程序中改編了該Web應用程序。 我對該應用程序的大部分邏輯是在后端代碼后面。
創建應用程序並希望使用MVC將應用程序更改為另一種技術后,我決定使用PHP / Zend Framework 2,以便加深對MVC和PHP的理解,以便使代碼更結構化。
到目前為止我所做的...
我有已經可以創建新記錄的詳細信息表單(即,創建CRUD的一部分)。
到目前為止,我的視圖文件夾看起來像這樣
view
|
--action-item
|
--details
| |
| --index.phtml <--single view template to handle CRUD
|
--summary
|
--index.phtml <--separate view not related to details
所需的路線模板
localhost/actionitem/create <-- C (Create New Record)
localhost/actionitem/view/1 <-- R (Read first element)
localhost/actionitem/update/1 <-- U (Update first element)
localhost/actionitem/delete/1 <-- D (Delete first element)
控制器動作方法
/* @var $actionItemTable ActionItemTable */
public function summaryAction()
{
return new ViewModel(array(
'actionitems' => $this->getActionItemTable()->fetchAll(),
));
}
public function detailsAction()
{
$dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
$form = new \Application\Form\ActionItemForm($dbAdapter);
return ['form' => $form];
}
public function createAction()
{
$dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
$form = new \Application\Form\ActionItemForm($dbAdapter);
$request = $this->getRequest();
if($request->isPost())
{
$request = $this->getRequest();
$actionitem = new ActionItem();
if($request->isPost())
{
$form->setData($request->getPost());
if ($form->isValid())
{
$actionitem->exchangeArray($form->getData());
$this->getActionItemTable()->saveActionItem($actionitem);
}
}
}
return ['form' => $form];
}
題
構造用於處理CRUD操作的動作的適當方法是什么?將控制器划分為單獨的控制器是一個好主意嗎?
任何幫助或建議,將不勝感激...
也許您應該考慮采用RESTful方法。
ZF2為此有一個AbstractRestfulController
類。 使用此控制器,您可以輕松地將創建,讀取更新和刪除操作映射到它們各自的POST
, GET
, PUT
/ PATCH
和DELETE
http方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.