Yii フレームワークのゴミの名前付き範囲 NAMED SCOPE_PHP チュートリアル
名前付き範囲
注: 名前付き範囲のサポートはバージョン 1.0.5 から始まります。 名前付きスコープの元のアイデアは、Ruby on Rails から生まれました。
名前付きスコープは名前付きクエリ ルールを表し、他の名前付きスコープと組み合わせて使用したり、アクティブ レコード クエリに適用したりできます
名前付きスコープは、主に CActiveRecord::scopes() メソッドの名前とルールのペアの形式で宣言されます。次のコードは、Post モデル クラスで 2 つの名前付きスコープを宣言します
最近出版されたもの。
クラス Post extends CActiveRecord
{
…
パブリック関数のスコープ()
{
return array(
'公開'=>array(
'条件'=>'ステータス=1',
)、
'最近'=>array(
'order'=>'create_time DESC',
'制限'=>5,
)、
);
}
}
具体的な使用法: $posts=Post::model()->published()->recently()->findAll();
注: 名前付きスコープはクラスレベルのメソッドでのみ使用できます。つまり、このメソッドは ClassName::model() を使用して呼び出す必要があります。
パラメータ化された名前付き範囲
名前付き範囲はパラメータ化できます。たとえば、これを達成するには、CActiveRecord::scopes ではなく、最近名前を付けたスコープで指定された投稿の数をカスタマイズしたいと考えています
メソッド内で名前付き範囲を宣言する代わりに、名前付き範囲と同じ名前のメソッドを定義する必要があります:
最近の公開関数($limit=5)
{
$this->getDbCriteria()->mergeWith(array(
)
'order'=>'create_time DESC',
'limit'=>$limit,
));
$this を返します;
}
次に、次のステートメントを使用して、最新の 3 つの投稿を取得します。
$posts=Post::model()->published()->recently(3)->findAll();//上記のコードでは、デフォルトで最近公開された 5 つの投稿が取得されます。
デフォルトの範囲
モデル クラスには、このモデルに関するすべてのクエリ (関連するクエリを含む) に適用されるデフォルトのスコープを持つことができます。たとえば、複数の言語をサポートする Web サイトでは、
のみを表示したい場合があります。
現在のユーザーが指定した言語でコンテンツを表示します。 この Web サイトのコンテンツに関するクエリは多数ある可能性があるため、この問題を解決するためにデフォルトのスコープを定義できます。 本当です
この目的のために、次のように CActiveRecord::defaultScope メソッドをオーバーライドします。
class Content は CActiveRecord を拡張します
{
パブリック関数defaultScope()
{
return array(
'condition'=>" language='".Yii::app()-> language."'",
);
}
}
実用的なアプリケーション
上記はいくつかの公式の例です。参考のために私自身が使用した例を以下に示します。
テーブル:
class:id(pk,int),name(varchar),s_id(fk,int) //クラス
Student:id(pk,int),name(varchar),s_id(int),c_id(int) //学生
例: クエリは学校「a」のすべてのクラスを対象としています。この時点では、簡単に呼び出すために、最初に School モデルの relationship メソッドで関係を定義できます。
パブリック関数の関係()
{
配列を返します(
'class'=>array(self::HAS_MANY, 'Class', 's_id'),
);
}
パブリック関数のスコープ()
{
配列を返します(
'getAllClass'=>array(
'with'=>'クラス',
)、
};
}
パブリック関数 getAllClass($name)
{
$this->getDbCriteria()->mergeWith(array(
)
'条件'=>"t.name=$name",
));
$this を返します;
使用: School::model()->getAllClass("a")->findAll();

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

インストールされている Oracle のバージョンを簡単に確認するには、具体的なコード例が必要です。Oracle データベースは、エンタープライズ レベルのデータベース管理システムで広く使用されているソフトウェアとして、多くのバージョンとさまざまなインストール方法があります。私たちは日々の業務で、対応する運用やメンテナンスのために、インストールされている Oracle データベースのバージョンを確認する必要があることがよくあります。この記事では、インストールされているOracleのバージョンを簡単に確認する方法と具体的なコード例を紹介します。方法 1: Oracle データベースの SQL クエリを通じて、次のことができます。

Kylin オペレーティング システムのバージョンとカーネル バージョンの確認 Kirin オペレーティング システムでは、システム バージョンとカーネル バージョンを確認する方法を知ることが、システム管理とメンテナンスの基礎となります。 Kylin オペレーティング システムのバージョンを確認する方法 1: /etc/.kyinfo ファイルを使用する Kylin オペレーティング システムのバージョンを確認するには、/etc/.kyinfo ファイルを確認します。このファイルには、オペレーティング システムのバージョン情報が含まれています。次のコマンドを実行します: cat/etc/.kyinfo このコマンドは、オペレーティング システムの詳細なバージョン情報を表示します。方法 2: /etc/issue ファイルを使用する オペレーティング システムのバージョンを確認するもう 1 つの方法は、/etc/issue ファイルを参照することです。このファイルにはバージョン情報も含まれていますが、.kyinfo ファイルほど優れていない可能性があります。

Llama3 に関しては、新しいテスト結果が発表されました。大規模モデル評価コミュニティ LMSYS は、Llama3 が 5 位にランクされ、英語カテゴリでは GPT-4 と同率 1 位にランクされました。このリストは他のベンチマークとは異なり、モデル間の 1 対 1 の戦いに基づいており、ネットワーク全体の評価者が独自の提案とスコアを作成します。最終的に、Llama3 がリストの 5 位にランクされ、GPT-4 と Claude3 Super Cup Opus の 3 つの異なるバージョンが続きました。英国のシングルリストでは、Llama3 がクロードを追い抜き、GPT-4 と並びました。この結果について、Meta の主任科学者 LeCun 氏は非常に喜び、リツイートし、

1 分で完了: pip バージョンを更新する方法、具体的なコード例が必要です Python の急速な発展に伴い、pip は Python パッケージ管理の標準ツールになりました。ただし、時間の経過とともに、pip バージョンは常に更新されるため、最新の機能を使用し、潜在的なセキュリティ脆弱性を修正できるようにするには、pip バージョンを更新することが非常に重要です。この記事では、pip を 1 分で素早く更新する方法と具体的なコード例を説明します。まず、コマンド ライン ウィンドウを開く必要があります。 Windows システムでは、次のように使用できます。

DP インターフェースはコンピューターの重要なインターフェース ケーブルです。コンピューターを使用するときに、多くのユーザーは DP インターフェースが 1.2 か 1.4 かを確認する方法を知りたいと考えています。実際には、GPU-Z で確認するだけで済みます。 dp インターフェイスが 1.2 か 1.4 かを判断する方法: 1. まず、GPU-Z で「アドバンス」を選択します。 2. 「詳細」の「全般」の「Monitor1」を見ると、「LinkRate (current)」と「Lane (current)」の 2 つの項目が表示されます。 3. 最後に 8.1Gbps×4 と表示されていれば DP1.3 以降のバージョン、通常は DP1.4 を意味し、5.4Gbps×4 であれば、

PHP バージョン NTS の意味と違い PHP は、Web 開発の分野で広く使用されている人気のあるサーバーサイド スクリプト言語です。 PHP には、ThreadSafe(TS) と Non-ThreadSafe(NTS) の 2 つの主要なバージョンがあります。 PHP の公式 Web サイトでは、PHPNTS と PHPTS という 2 つの異なる PHP ダウンロード バージョンを確認できます。では、PHP バージョンの NTS とは何を意味するのでしょうか? TS版との違いは何ですか?次、

PyCharm Community Edition は十分なプラグインをサポートしていますか?特定のコード例が必要 ソフトウェア開発の分野で Python 言語がますます広く使用されるようになるにつれて、プロ仕様の Python 統合開発環境 (IDE) として PyCharm が開発者に好まれています。 PyCharmはプロフェッショナル版とコミュニティ版の2つのバージョンに分かれており、コミュニティ版は無料で提供されますが、プラグインのサポートがプロフェッショナル版に比べて制限されています。そこで問題は、PyCharm Community Edition は十分なプラグインをサポートしているかということです。この記事では、具体的なコード例を使用して、
