大家晚上好!
TypeError参数2传递到CodeIgniter\DatabaseBuilder::like((的类型必须为字符串,给定null,在中调用D: \examplep\htdocs\lordeCI\app\Controllers\AutocompleteSearch.php在线31
Codeigniter正在为下面的代码块抛出此错误,">titulo"one_answers">post_id'是名为"posts"的表的列名:
public function ajaxSearch()
{
helper(['form', 'url']);
$data = [];
$db = ConfigDatabase::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,尽管内容类型是"0";text/html";,我已经检查了图像路径,它是正确的。然而,下面的消息显示在开发工具的网络选项卡中
"DevTools无法加载SourceMap:无法加载的内容铬-extension://pmncamalnkoafdfdmojmhanhngjaakcb/browser-polyfill.js.map:HTTP错误:状态代码404,网络::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的问题。