Ошибка передачи параметров jasperphp

В отчете о яшме у меня есть SQL-предложение вроде этого:

SELECT * FROM table $P!{my_where}

В моей программе php я называю отчет следующим образом:

    JasperPHP::process(
        base_path() . '/app/reports/report.jasper', 
        false,
        array("pdf"),
        array("my_where" => "WHERE field = value"),
        \Config::get('database.connections.mysql')
        )->execute();

Затем это сообщение об ошибке:

Неправильный формат отчета!

Делать это простым способом работает, я имею в виду:

В отчете:

SELECT * FROM table WHERE $P!{field} = $P{value}

В PHP:

    JasperPHP::process(
        base_path() . '/app/reports/report.jasper', 
        false,
        array("pdf"),
        array("field" => $my_field, "value" => $my_value),
        \Config::get('database.connections.mysql')
        )->execute();

Дело в том, что мне нужно динамически построить предложение where из нескольких полей, поэтому необходимо передать только параметр "где".

Любая идея?

1 ответ

Решение

Решено: просто необходимо заключить в кавычки параметр:

$my_where = '"' .  $my_where . '"';

JasperPHP::process(
    base_path() . '/app/reports/report.jasper', 
    false,
    array("pdf"),
    array("my_where" => $my_where),
    \Config::get('database.connections.mysql')
    )->execute();
Другие вопросы по тегам