$ _POST与klein.php路由器:如何将$ _POST传递给视图?

时间:2013-04-22 11:32:48

标签: php forms routes url-routing klein-mvc

在未知的水域钓鱼,我给了klein.php一个旋转路线,并且在我的生活中无法找到如何将$ _POST从html表单传递到另一个视图。

示例:

的index.php

<?php
//START ROUTING
require 'klein.php';
require 'autoload.php';

respond('/', function ($request, $response) {
    $response->render('homepage.php', array(
        'meta_title' => 'My Homepage'
    ));
});
respond('/[:name]', function ($request, $response) {
    $response->render('siteinfo.php', array(
        'meta_title' => 'My Details Page'
        ));
});

现在,我在 homepage.php 上有一个表单,其中我执行以下操作:

<form method="post">
    <input type="text" name="url">
    <button type="submit">Submit</button>
</form>

siteinfo.php抓取在网址后面传递的内容(例如example.com/product123 - &gt; product123),并在视图“siteinfo.php”中显示有关该内容的信息。到目前为止,如果手动输入地址栏,这与上面的代码完美匹配,因为我可以在siteinfo.php上访问[:name]作为$ request-&gt;名称。

每当我在表单上触发搜索时,我都希望将$ _POST从homepage.php视图传递给index.php为[:name]而不是$ _GET!知道如何使用klein.php或我应该从哪里开始寻找答案?

我也尝试传递param()值,但这仍不适用于表单。我也尝试添加action = index.php / siteinfo.php / homepage.php作为表单的动作,但仍然没有爱......

任何有用的帮助......

1 个答案:

答案 0 :(得分:2)

这将是一个很好的起点。到目前为止你尝试了什么?

respond('POST', '/', function ($request, $response) {

    $request->validate('url')->notNull();

    $response->url= $request->url;

    $response->render('homepage.php');
});