У меня есть некоторые проблемы с синтаксисом при использовании zend-select,
Я получаю поля и значения из формы поиска, я использую массив, который выглядит, например, вот так (все здесь не из моей модели ):
Из-за того, что параметры массива (vorname и nachname (mandant будут целыми числами)) являются типом string, я хочу используйте подстановочные знаки в моем выборе, если поля vorname или / и nachname заполнены пользователем.
Я попробовал этот, чтобы научиться правильно его писать, что работает:
$select->where(['nachname LIKE ?'=>'%idt%']);
$select->where(['vorname LIKE ?'=>'%tan%']);
Чтобы получить правильную строку для использования в моем выборе, я использую это довольно неудобно, и, помимо появления ошибки, код:
foreach ($suche as $key=>$val) {
if (($key=="vorname") && (strlen($suche['vorname'])>0)){
$kritvn = "['" . $key . " LIKE " . chr(63) . " => '%" . $val . "%']";
}
if (($key=='nachname') && (strlen($suche['nachname'])>0)){
$kritnn = "['" . $key . " LIKE ?'=>'%" . $val ."%']";
}
}
В первом я немного поиграл с синтаксисом для " ? ", если я использую следующий, я получаю следующую ошибку;
$kritvn = "['" . $key . " LIKE ?'=>'%" . $val ."%']";
для правильного синтаксиса, чтобы использовать рядом с '[' vorname LIKE '=>' %% tan %% ' ])
Я пробовал с помощью функции chr (), а раньше с \?, Такая же проблема будет с "%".
Итак, в конце концов, у меня действительно два вопроса:
Каким будет правильный метод для достижения результата?
Если нет лучшее решение, о чем я не думаю, так как мне написать это правильно?
, если $ key = 'vorname' и значение возможно tan, я был бы признателен за условие where, которое выглядит так:
$select->where(['vorname LIKE ?'=>'%tan%']);
И, возможно, есть лучший способ, проблема возникла, потому что теперь я хотел подстановочные знаки; -)