Ajuda urgente com erro em php

Fala galera, tudo bem?
Entao, preciso muito de ajuda para entender esse erro que esta acontecendo:
Fatal error : Uncaught TypeError: Argument 1 passed to Hr::searchByName() must be of the type string, null given, called in C:\xampp\htdocs\Emplopes\app\ajax-human-resources\search.php on line 11 and defined in C:\xampp\htdocs\Emplopes\app\Classes\Hr.php:54 Stack trace: #0 C:\xampp\htdocs\Emplopes\app\ajax-human-resources\search.php(11): Hr->searchByName(NULL) #1 {main} thrown in C:\xampp\htdocs\Emplopes\app\Classes\Hr.php on line 54

Abaixo está os codigos referenciados no erro:

Hr.php:
<?php

    include_once '../../app/Helpers/autoload.php';

    class Hr extends Model

    {

        private string $table    = 'dp_rh_table';

        public function createEmployee (string $name, string $departamento, string $idade, string $cpf, string $rg, float $salario, string $dt_inicio): bool

        {

            //criar uma função

            $sql    = "SELECT id_func, cpf FROM {$this->table} WHERE cpf = :c";

            $search    = $this->connection->prepare($sql);

            $search->bindValue(':c', $cpf, PDO::PARAM_STR);

            $search->execute();

            if ($search->rowCount() > 0) //existe

            {

                return false;

            }

            else //nao existe

            {

                //insere

                $sql    = "INSERT INTO {$this->table} (nome, departamento, idade, cpf, rg, salario, dt_inicio, /* documentos */) VALUES (:n, :dp, :i, :c, :r, :s, :dti/* , :dc */)";

                $insert    = $this->connection->prepare($sql);

                $insert->bindValue(':n', $name, PDO::PARAM_STR);

                $insert->bindValue(':dp', $departamento, PDO::PARAM_STR);

                $insert->bindValue(':i', $idade, PDO::PARAM_STR);

                $insert->bindValue(':c', $cpf, PDO::PARAM_STR);

                $insert->bindValue(':r', $rg, PDO::PARAM_STR);

                $insert->bindValue(':s', $salario, PDO::PARAM_STR);

                $insert->bindValue(':dti', $dt_inicio, PDO::PARAM_STR);

                $insert->execute();

                if ($insert->rowCount() > 0) //inseriu

                {

                    return true;

                }

                return false;

            }

        }

        public function getEmployee()

        {

            $sql    = "SELECT id_func, nome, departamento, idade, cpf, rg, salario, dt_inicio FROM {$this->table}";

            $data    = $this->connection->query($sql);

            if($data->rowCount() > 0)

            {

                return $data->fetchAll();

            }

            return false;

        }

        public function searchByName (string $name)

        {

            $sql    = "SELECT id_func, nome, departamento, idade, cpf, rg, salario, dt_inicio FROM {$this->table} WHERE nome LIKE :nome ORDER BY id_usuario DESC";

            $search    = $this->connection->prepare($sql);

            $search->bindValue(':nome', "%{$name}%", PDO::PARAM_STR);

            $search->execute();

            if($search->rowCount() > 0)

            {

                return $search->fetchAll();

            }

            return false;

        }

        public function editEmployee (int $id_func, string $name, string $departamento, string $idade, string $cpf, string $rg, float $salario, string $dt_inicio): bool

        {

            $sql    = "UPDATE dp_rh_table SET nome = :nome , departamento = :departamento, idade = :idade, cpf = :cpf, rg = :rg, salario = :salario, dt_inicio = :dt_inicioWHERE id_func = :id_func";

            $edit    = $this->connection->prepare($sql);

            $edit->bindValue(':nome', $name, PDO::PARAM_STR);

            $edit->bindValue(':departamento', $departamento, PDO::PARAM_STR);

            $edit->bindValue(':idade', $idade, PDO::PARAM_STR);

            $edit->bindValue(':cpf', $cpf, PDO::PARAM_STR);

            $edit->bindValue(':rg', $rg, PDO::PARAM_STR);

            $edit->bindValue(':salario', $salario, PDO::PARAM_STR);

            $edit->bindValue(':dt_inicio', $dt_inicio, PDO::PARAM_STR);

            $edit->bindValue(':id_func', $id_func, PDO::PARAM_INT);

            $edit->execute();

            if ($edit->rowCount() > 0) //ok

            {

                return true;

            }

            return false;

        }

        public function deleteEmployee (int $id_func): bool

        {

            $sql    = "DELETE FROM {$this->table} WHERE id_func = :id_func";

            $delete    = $this->connection->prepare($sql);

            $delete->bindValue(':id_func', $id_func, PDO::PARAM_INT);

            $delete->execute();

            if ($delete->rowCount() > 0)

            {

                return true;

            }

            return false;

        }

    }

search.php:
<?php

    include_once '../Classes/Hr.php';

    //pegando e tratando a variavel

    //$nome    = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING);

     $nome    = filter_input(INPUT_POST, 'q', FILTER_SANITIZE_STRING);

    $employee    = new Hr();

    $employees   = $employee->searchByName($nome);

    if (!$employees)

    {

        echo 'nousers';

        exit;

    }

?>

<!-- Table -->

<table class="table table-bordered table-hover text-center">

    <thead class="thead-dark">

    <th scope="col">#</th>

        <th scope="col">Nome</th>

        <th scope="col">Departamento</th>

        <th scope="col">Idade</th>

        <th scope="col">CPF</th>

        <th scope="col">RG</th>

        <th scope="col">Salario</th>

        <th scope="col">Data de inicio</th>

        

        <th scope="col">Ação</th>

    </thead>

    <tbody>

        <?php foreach($employees as $item): ?>

        <tr>

            <th scope="row"><?= $item->id_func; ?></th>

            <td><?= $item->nome; ?></td>

            <td><?= $item->departamento; ?></td>

            <td><?= $item->idade; ?></td>

            <td><?= $item->cpf; ?></td>

            <td><?= $item->rg; ?></td>

            <td><?= $item->salario; ?></td>

            <td><?= $item->dt_inicio; ?></td>

            

            <td>

                <!-- edit -->

                <button type="button" class="btn text-dark" data-toggle="modal" title="Editar funcionario" data-target="#modalEdit" data-id_func="<?= $item->id_func; ?>" data-nome="<?= $item->nome; ?>" data-departamento="<?= $item->departamento; ?>" data-idade="<?= $item->idade ?>" data-cpf="<?= $item->cpf ?>" data-rg="<?= $item->rg ?>" data-salario="<?= $item->salario ?>" data-dt_inicio="<?= $item->dt_inicio ?>" >

                    <i class="fas fa-user-edit"></i>

                </button>

                <!-- delete -->

                <button type="button" class="btn text-danger" data-toggle="modal" title="Excluir funcionario" data-target="#modalDelete" data-id_func="<?= $item->id_func; ?>" data-nome="<?= $item->nome; ?>" data-departamento="<?= $item->departamento; ?>" data-idade="<?= $item->idade ?>" data-cpf="<?= $item->cpf ?>" data-rg="<?= $item->rg ?>" data-salario="<?= $item->salario ?>" data-dt_inicio="<?= $item->dt_inicio ?>" >

                    <i class="fas fa-trash-alt"></i>

                </button>

            </td>

        </tr>

            <?php endforeach; ?>

    </tbody>

</table>

Preciso resolver logo esse problema pois apresento esse codigo amanha.

Voce precisa pelo menos debugar e inspecionar o que tá dando de errado, pra tentar ser mais pontual na questão.

A mensagem de erro:

Argument 1 passed to Hr::searchByName() must be of the type string, null given

Diz que o parâmetro passado para a função searchByName está nulo, quando deveria ser uma string válida.

Essa função é chamada no trecho abaixo:

$nome    = filter_input(INPUT_POST, 'q', FILTER_SANITIZE_STRING);
$employee    = new Hr();
$employees   = $employee->searchByName($nome);

Aparentemente, $nome está ficando nulo na linha:

$nome = filter_input(INPUT_POST, 'q', FILTER_SANITIZE_STRING);

É isso que você precisa investigar por que ocorre, ou mesmo criar uma validação para não chamar o restante do código se essa variável não estiver preenchida.

Abraço.