Cakephp 3.6:注意(8):未定义索引:搜索但所需功能有效

时间:2018-10-17 13:21:08

标签: php search cakephp

我正在实现这样的搜索功能:

index.ctp

<div class="Search">
        <?php
        // The base url is the url where we'll pass the filter parameters
        $base_url = array('controller' => 'ExpiringServices', 'action' => 'index');
        echo $this->Form->create("Filter",array('url' => $base_url, 'class' => 'filter'));
        // Add a basic search 
        echo $this->Form->input("search", array('label' => false, 'placeholder' => "Name or surname..."));

        echo $this->Form->submit("Refresh");

        echo $this->Form->end();
        ?>
</div>

ExpiringServicesController.php

$searchInput = $this->request->data['search']; //line 27

但是当搜索按预期进行时,我会收到此错误:

  

通知(8):未定义索引:搜索[APP / Controller \ ExpiringServicesController.php,第27行]

如果我使用debug($searchInput),则可以看到它包含搜索输入文本。但是,如果我使用if (isset($_FILES[$this->request->data['search']])),它将不会进入if语句中,就像未设置一样。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

您应该改用getData()

$searchInput = $this->request->getData('search');

这将防止未定义的索引错误,并且直接从文档开始:

  

任何不存在的键都将返回null

$foo = $this->request->getData('Value.that.does.not.exist');
// $foo == null