搜索栏TypeError

卢安·洛佩兹

各位晚安!

传递给CodeIgniter \ Database \ BaseBuilder :: like()的TypeError参数2必须为字符串类型,给定为null,在第31行的D:\ xampp \ htdocs \ lordeCI \ app \ Controllers \ AutocompleteSearch.php中调用

Codeigniter针对以下代码块抛出此错误,“ titulo ”和“ post_id ”是名为“ posts”的表的列名:

public function ajaxSearch()
    {
        helper(['form', 'url']);

        $data = [];

        $db      = \Config\Database::connect();
        $builder = $db->table('posts');   

        $query = $builder->like('titulo', $this->request->getVar('q')) //this is line 31
                    ->select('post_id, titulo as text')
                    ->limit(10)->get();
        $data = $query->getResult();
        
        echo json_encode($data);
    }

另外,某些图像无法正确加载,浏览器提供了一个状态代码:200,尽管content-type是“ text / html”,但我已经检查了图像路径并且它是正确的。但是,以下消息显示在开发工具的“网络”选项卡中。

“ DevTools无法加载SourceMap:无法加载chrome-extension://pmncamalnkoafdfdmojmhanhngjaakcb/browser-polyfill.js.map:HTTP错误:状态代码404,net :: ERR_UNKNOWN_URL_SCHEME”

帕纳塔

例外

您将得到:您正在将空值传递给q参数,发生异常是因为它就像调用:$query = $builder->like('titulo', null),这不会发生,只有字符串被接受为方法的第二个参数like

要解决此问题,请在使用它之前验证您的参数:

$titulo = '';
if ( ! empty( $titulo ) ) {
    $titulo = $this->request->getVar('q');
}
$query = $builder->like('titulo', $titulo);

更好的方法是通过表单验证

图片问题

您必须检查如何将图像退还给客户。如果您直接从传回图片,echo则会出现这种错误。

最好的方法是在应用服务器级别解决此问题。

SourceMap错误

没什么大问题,这不会在任何方面阻碍您的应用程序。看看这个StackOverflow的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章