错误 500 调用 bool 上的成员函数

问题描述

我正在使用 Fat Free Framework,但在尝试使用 dry() 函数检查不存在的数据 ID 时出现此错误 如果我为它提供不存在的 ID 值,我下面的代码将抛出 Call to a member function dry() on bool 错误。如果未找到 ID,则应回显 Empty Cursor 回显,如果出现错误,则应回显。如果我使用数据库中的 ID,它将显示该 ID 存在。

if(is_numeric($param['id'])) 
        {
            $id = $param['id'];
            //check if data exist
            $data = $data->load($id);
            if(!$data->dry())
            {
                echo 'Data with id:'.$id.' exist';
            }
            else echo 'Cursor is empty. Data with id:'.$id.' doesnt exist!';

            die();
        }
        else $f3->reroute('/');

如何在没有错误的情况下检查 ID 是否存在?

解决方法

如果您的 load() 方法在未找到数据时返回 false,那么您应该在尝试对该值进行任何进一步操作之前检查这一点。

我也将测试更改为

if($data !== false) {

这样,如果您的方法返回一些其他看起来像 false(0、null 等)的值,那么这将确保它只选择 false...

if(is_numeric($param['id'])) 
{
     $id = $param['id'];
     //check if data exist
     $data = $data->load($id);
     if($data !== false) {
         echo 'Data with id:'.$id.' exist';
     }
     else  {
         echo 'Cursor is empty. Data with id:'.$id.' doesnt exist!';
     }
     die();
}
else {
    $f3->reroute('/');
}