ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp モデル フィルター クエリ フィールド、式ステップ

thinkphp モデル フィルター クエリ フィールド、式ステップ

WBOY
リリース: 2016-06-13 13:15:37
オリジナル
1515 人が閲覧しました

thinkphp モデルはクエリ フィールドをフィルターし、式メソッド
はクエリ式
を使用します

クエリ式の使用形式:
$map['フィールド名'] = array('', 'クエリ条件');

式では大文字と小文字が区別されません。サポートされているクエリ式は次のとおりです。それぞれの意味は次のとおりです。
EQ: 等しい (=)
例: $map['id'] = array('eq',100);
は、次のクエリ と同等です。
$map['id'] = 100;
で表されるクエリ条件は id = 100 です
NEQ: (!=) と等しくない
例: $map['id'] = array('neq',100);
で表されるクエリ条件は id != 100 です
GT: より大きい (>)
例: $map['id'] = array('gt',100);
で表されるクエリ条件は id > 100 です。
EGT: 以上 (>=)
例: $map['id'] = array('egt',100);
で表されるクエリ条件は id >= 100 です
LT: より小さい (<)
例: $map['id'] = array('lt',100);
で表されるクエリ条件は id です。
ELT: 以下 (<=)
例: $map['id'] = array('elt',100);
で表されるクエリ条件は ID <= 100 です
LIKE: SQL LIKE と同じ
例: $map['name'] = array('like','thinkphp%');
クエリ条件は 'thinkphp%' のような名前になります
DB_LIKE_FIELDS パラメーターが構成されている場合、一部のフィールドはファジー クエリも自動的に実行します。たとえば、次のように設定します:
'DB_LIKE_FIELDS'=>'タイトル|コンテンツ'
の場合は、
を使用します $map['title'] = 'thinkphp';
クエリ条件は '%thinkphp%' のような名前になります
[NOT] BETWEEN: SQL の [not] between と同じで、クエリ条件は文字をサポートします。文字列または配列。例:
$map['id'] = array('between','1,8');
は、
と同等です。 $map['id'] = array('between',array('1','8'));
クエリ条件は ID BETWEEN 1 AND 8 になります
[NOT] IN: SQL の [not] in と同じで、クエリ条件は文字をサポートします。文字列または配列。例:
$map['id'] = array('not in','1,5,8');
は、
と同等です。 $map['id'] = array('not in',array('1','5','8'));
クエリ条件は id NOT IN (1,5, 8) になります
EXP: 式、より複雑なクエリ状況をサポート
例:
$map['id'] = array('in','1,3,8');
は、
に変更できます。 $map['id'] = array('exp',' IN (1,3,8) ');
exp クエリ条件は文字列として扱われないため、後続のクエリ条件では任意の 任意のSQL を使用できます。 関数名とフィールド名 の使用を含む、サポートされている構文。クエリ式はクエリ条件だけでなく、データ更新にも使用できます。たとえば、
$User = M("User") // ユーザー オブジェクトをインスタンス化します
//変更するデータオブジェクト属性の割り当て
$data['name'] = 'ThinkPHP';
$data['score'] = array('exp','score+1') // ユーザーのポイントが 1 増加します
$User->where('id=5')->save($data) // 条件に従って変更したデータを保存します

上記のフィルター クエリ条件は、次のように _filter() 関数に記述することができます:
//クエリフィールドをフィルタリングします
function _filter(&$map){
$map['title'] = array('like',"%".$_POST['til']."%");
$map['categoryId'] = array('eq',$_REQUEST['cid']);

}
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート