0
このコードをCakePHP 3に実装するにはどうすればよいですか?IF/AND/ORを組み合わせたCakePHP 3クエリ
function notEmpty($field) {
return isset($field) && $field != '';
}
$conditions[] = notEmpty($group_id) ? "group_id LIKE %$group_id%" : '';
$conditions[] = notEmpty($token) ? "firstname LIKE %$token% OR lastname LIKE %$token% OR username LIKE %$token%" : '';
$conditions[] = notEmpty($parent_id) ? "parent_id LIKE %$parent_id%" : '';
$conditions[] = notEmpty($status) ? "status1 LIKE %$status% AND status2 LIKE %$status%" : '';
$conditions = array_filter($conditions , function($value) { return $value !== ''; });//Remove empty conditions
array_walk($conditions, function(&$item) { $item = "($item)"; });//Add() to conditions
$where = !empty($conditions) ? 'WHERE '.implode(' AND ', $conditions) : '';
$query = 'SELECT * FROM users '.$where;
私は改ページを使用しています。
それは、私がこれほど少ないコード(悪気)にaccross非常に多くの可能なSQLインジェクションの脆弱性を来て、長い時間がかかりました! ** _(ユーザー)データを直接クエリに追加することは絶対にありません** **カスタムSQLを作成するときにはいつも準備済みのクエリを使用してください!あなたは何を試しましたか? CakePHP 3 ORMについて何か知っていますか?そうでない場合は、最初にドキュメントを勉強することを強くお勧めします:** https://book.cakephp.org/3.0/en/orm/query-builder.html** | ** https://book.cakephp.org/3.0/en/controllers/components/pagination.html** – ndm
これは、私がこのコードをphpでなくケーキで実装したいのです。私はこれを単純なコードで行うことができますが、私はどのように私は上記を行うことができますかわからない。複雑なコードなので:( –