0

在 Slim 框架 4 中;如何在我的控制器中返回 Formr-form 作为对 get-request 的响应?

$app->group('/timer', function (Group $group) {
    $group->get('/', function (Request $request, Response $response) {

        $form = new Formr\Formr();

        // $form->create_form('Name')
        // die();
        $response->getBody()->write($form->create_form('Name'));
        return $response;
    });
});

该代码不输出任何内容。但是,如果我取消注释这两行,它会输出(如预期的那样):

<form action="/index.php" id="myFormr" method="post" accept-charset="utf-8">
<input type="hidden" name="FormrID" value="myFormr"><label for="name">Name</label> 
<input type="text" name="name" id="name" />


<button type="submit" name="button" id="button">Submit</button>


</form>
4

1 回答 1

1

来自Formr 文档

Formr 会自动将表单元素和消息回显到屏幕上,这通常很好。然而,在某些情况下——例如使用模板框架时——这不是一个选项。在这些情况下,只需传递单词hush,然后手动回显您的元素和消息。

$form = new Formr\Formr('bootstrap', 'hush');

构造函数的第一个参数的默认值为Formr\Formr空字符串,因此在您的情况下,您应该创建新的 Formr 实例,并将空字符串''作为第一个参数 ann'hush'作为第二个参数:


$app->group('/timer', function (Group $group) {
    $group->get('/', function (Request $request, Response $response) {
        
        // required change
        $form = new Formr\Formr('', 'hush');
             
        $response->getBody()->write($form->create_form('Name'));
        return $response;
    });
});
于 2021-11-23T22:23:51.470 回答