ホームページ バックエンド開発 PHPチュートリアル Yii フレームワークのゴミの名前付き範囲 NAMED SCOPE_PHP チュートリアル

Yii フレームワークのゴミの名前付き範囲 NAMED SCOPE_PHP チュートリアル

Jul 14, 2016 am 10:10 AM
1 crud Note yii 名前 サポート バージョン 範囲

名前付き範囲
注: 名前付き範囲のサポートはバージョン 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."'",
);
}
}

これで、次のメソッドが呼び出される場合、上記で定義されたクエリ ルールが自動的に使用されます: $contents=Content::model()->findAll();

実用的なアプリケーション
上記はいくつかの公式の例です。参考のために私自身が使用した例を以下に示します。
テーブル:

school:id(pk,int),name(varchar) //学校

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();

http://www.bkjia.com/PHPjc/477592.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477592.html技術記事名前付き範囲注: 名前付き範囲のサポートはバージョン 1.0.5 から始まります。 名前付きスコープの元のアイデアは、Ruby on Rails から来ています。名前付きスコープは名前付きクエリを表します...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Linux での CURL バージョンの更新に関するチュートリアル! Linux での CURL バージョンの更新に関するチュートリアル! Mar 07, 2024 am 08:30 AM

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

インストールされている Oracle のバージョンを簡単に確認する方法 インストールされている Oracle のバージョンを簡単に確認する方法 Mar 07, 2024 am 11:27 AM

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

Kirin オペレーティング システムのバージョンとカーネルのバージョンを確認する Kirin オペレーティング システムのバージョンとカーネルのバージョンを確認する Feb 21, 2024 pm 07:04 PM

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

大型モデル間の1対1バトル75万ラウンド、GPT-4が優勝、Llama 3が5位にランクイン 大型モデル間の1対1バトル75万ラウンド、GPT-4が優勝、Llama 3が5位にランクイン Apr 23, 2024 pm 03:28 PM

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

pip バージョンを更新する簡単な手順: 1 分で完了します pip バージョンを更新する簡単な手順: 1 分で完了します Jan 27, 2024 am 09:45 AM

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

dp インターフェイスが 1.2 か 1.4 かを確認するにはどうすればよいですか? dp インターフェイスが 1.2 か 1.4 かを確認するにはどうすればよいですか? Feb 06, 2024 am 10:27 AM

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バージョンNTSの意味と違いを解釈する Mar 27, 2024 am 11:48 AM

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

PyCharm Community Edition は十分なプラグインをサポートしていますか? PyCharm Community Edition は十分なプラグインをサポートしていますか? Feb 20, 2024 pm 04:42 PM

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

See all articles