0

CAKEPHP 3.0

我已将这个搜索插件用于我正在处理的帮助中心。 https://github.com/FriendsOfCake/搜索

所以我已经在一个论坛页面上集成了这个插件,它可以成功地准确过滤搜索到的关键字。但是,当我从搜索结果https://gyazo.com/b53046571a26c8dfea624b1e7aee88d7中单击主题的“查看”按钮时,URL 更改为 /index/?view=view&forum_thread_id=10 并且无法找到其查看页面应该是 /forum-threads/view/10

有谁知道为什么这个插件会改变点击按钮链接的 URL?在哪里检查或我应该修改什么文件才能成功找到视图页面?提前谢谢你的帮助。

[编辑]

模板\论坛主题\index.ctp

<?= $this->Form->create($viewCounter) ?>
    <?= $this->Form->button('View', [
        'type' => 'submit', 
        'class'=>'btn btn-link btn-xs',
        'escape' => false, 
        'name' => 'view', 
        'value'=>'view' 
    ]) ?>
    <?= $this->Form->hidden('forum_thread_id', [
        'value' => $forumThread['id']
    ]) ?>
<?= $this->Form->end() ?>
4

1 回答 1

0

出于某种原因,您正在使用表单重定向到查看页面

假设这是所需的行为(您实际上想将 POST 数据发送到视图),那么您必须告诉表单哪个是操作

<?= $this->Form->create($viewCounter, ['url' => ['action' => 'view']) ?>

否则它会将数据发送到您所在的页面(index页面),然后搜索插件的 PRG 组件将 POST 数据转换为 GET 参数

如果您不需要发送 POST 数据,您可以简单地创建一个链接

<?= $this->Html->link('view', [
    'action' => 'view', 
    '?' => ['forum_thread_id' => $forumThread['id']]
 ]) ?>
于 2018-04-24T07:36:06.573 回答