我需要在这个cakephp 3中添加另一个“like”,查询还必须在last_name字段中进行检查。我该怎么做,我想尊重CakePHP 3规则。感谢。
FUNCTION get_all_payroll_transactions return clob IS
lXml xmltype;
BEGIN
SELECT XMLElement( "transaction",
XMLElement("salary_year", SALYR),
XMLElement("salary_month", SALMT),
XMLElement("employee_id", EMPID),
XMLElement("department_code", DPTID),
XMLElement("salary_head", SALHD),
XMLElement("description", DESCRP),
XMLElement("amount", ALAMT),
XMLElement("operator_id", OPID),
XMLElement("transaction_date", TRADT)
) into lXml FROM PAYROLLFILE;
RETURN '<result><status affectedRow='|| lXml.getClobVal() ||'>success</status></result>';
EXCEPTION
WHEN OTHERS THEN
RETURN '<result><status>Error</status></result>';
END get_all_payroll_transactions;
答案 0 :(得分:4)
如果您真的想使用cakephp表达式
,这应该可行->where([
'OR' => [
'Users.first_name LIKE' => "%$keyword%",
'Users.last_name LIKE' => "%$keyword%"
]
])
但你可以做到
{{1}}
答案 1 :(得分:0)
这不是最好的方式,但可能有效:
$users = $this->Users
->find()
->where(function ($q) use ($keyword) {
return $q
->like('Users.first_name', "%$keyword% OR Users.last_name LIKE %$keyword%");
})
->limit(5)
->toArray();
如果这不起作用,CakePHP Documentation的这一部分可能会有所帮助