CakePHP3 - FriendsOfCake搜索插件表单链接不起作用

时间:2018-04-20 09:58:38

标签: url-routing cakephp-3.0 cakephp-search-plugin

CAKEPHP 3.0

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

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

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

[编辑]

模板\ ForumThreads \ 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() ?>

1 个答案:

答案 0 :(得分: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']]
 ]) ?>