各位晚安!
传递给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
则会出现这种错误。
最好的方法是在应用服务器级别解决此问题。
没什么大问题,这不会在任何方面阻碍您的应用程序。看看这个StackOverflow的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句