如何在 Yii 1.x 中通过 GET 传递表单模型

Posted

技术标签:

【中文标题】如何在 Yii 1.x 中通过 GET 传递表单模型【英文标题】:How to pass form model via GET in Yii 1.x 【发布时间】:2015-09-23 02:59:58 【问题描述】:

如何使用 URL 中现有的模型参数创建指向 Yii 表单的 URL?

例如我有 $model 有一些属性,想得到这样的 URL:

controller/formaction?Form%5Battr1%5D=VAL1&Form%5Battr2%5D=VAL2

【问题讨论】:

【参考方案1】:

您可以通过这种方式生成此类 URL:

Yii::app()->createUrl('controller/formaction', [
    Chtml::activeName('Form', 'attr1') => 'VAL1',
    CHtml::activeName('Form', 'attr2') => 'VAL2',
]);

【讨论】:

【参考方案2】:

你有没有尝试过这样的事情:

public function action formaction()
  $form = Yii::app()->request->getQuery('Form',false);

【讨论】:

【参考方案3】:

使用 GET 方法时无法自定义 url。当您使用 GET 方法时,browser 始终将所有输入的 namevalue 与您的表单操作字符串连接起来。所以无法更改。摆脱丑陋网址的一种可能解决方案是使用 POST 而不是 GET。

【讨论】:

我不想更改表单提交的url。我只想在我的表单模型$model 中使用属性在另一个操作中创建表单的url。例如。当我使用 createUrl 函数 ($this->createUrl('formaction', $model)) 时,我得到如下结果:controller/formaction?attr1%5D=VAL1&attr2%5D=VAL2 并且在 formaction 中没有正确解析。

以上是关于如何在 Yii 1.x 中通过 GET 传递表单模型的主要内容,如果未能解决你的问题,请参考以下文章

使用 react 和 EmailJs 在表单中通过 onSubmit 传递第二个参数

如何在 Yii 中通过 FPDF 为 POS 软件设置自动页面高度

如何在php中通过引用传递无限参数[重复]

在 Laravel 5.1 中通过 AJAX 将用户输入数据从视图传递到控制器

表单未在 yii 中验证和提交

在 Yii2 中通过 Ajax 上传不包括文件