代码之家  ›  专栏  ›  技术社区  ›  Pete Nelson

PHP表单post,自动映射到对象(模型绑定)

  •  13
  • Pete Nelson  · 技术社区  · 16 年前

    我做了很多ASP.NETMVC2开发,但是我正在处理一个小项目,需要用PHP来完成。

    PHP中是否内置了任何东西来进行模型绑定,将表单post字段映射到类?目前我的一些PHP代码如下所示:

    class EntryForm
    {
        public $FirstName = "";
        public $LastName = "";
    }
    
        $EntryForm = new EntryForm();
    
    if ($_POST && $_POST["Submit"] == "Submit")
    {
        $EntryForm->FirstName = trim($_POST["FirstName"]);
        $EntryForm->LastName = trim($_POST["LastName"]);
    }
    

    4 回复  |  直到 16 年前
        1
  •  10
  •   Mahomedalid    9 年前

    不是本地的,而是一个更好的解决方案,允许您使用自己的类或标准类。。。

    function populateWithPost ($obj = NULL)
    {
      if(is_object($obj)) {
    
      } else {
          $obj = new StdClass ();
      }
    
      foreach ($_POST as $var => $value) {
          $obj->$var = trim($value); //here you can add a filter, like htmlentities ...
      }
    
      return $obj;
    }
    

    然后你可以像这样使用它:

    class EntryForm
    {
        public $FirstName = "";
        public $LastName = "";
    }
    
    $entry = populateWithPost(new EntryForm());
    

     $obj = populateWithPost();
    
        2
  •  1
  •   Peter Bailey    16 年前

    您提示的框架答案是您需要在哪里进行此操作(毕竟,ASP.NET也是一个框架)

        3
  •  1
  •   corprew    16 年前

    你要找的是ORM(对象关系映射)层。PHP有两个,其中一个是 Doctrine

        4
  •  0
  •   thetaiko    16 年前

    public function populate($post) 到 EntryForm populate() 然后用你的入口窗体或者你想要的任何其他窗体来扩展它。当然,您还需要对输入进行清理。

    推荐文章