検索

1. モデルを作成します

a. 基本クラスを追加します

yii/base/Model を使用します

b. 必要な変数を作成します

e.ルールを定義します

f. [] で囲まれていることに注意してください

例:

<span>php

namespace app\models;

</span><span>use</span><span> yii\base\Model;

</span><span>class</span> EntryForm <span>extends</span><span> Model
{
    </span><span>public</span> <span>$name</span><span>;
    </span><span>public</span> <span>$email</span><span>;

    </span><span>public</span> <span>function</span><span> rules()
    {
        </span><span>return</span><span> [
            [[</span>'name', 'email'], 'required'],<span>
            [</span>'email', 'email'],<span>
        ];
    }
}</span>

このクラスは、Yii が提供する基本クラス [[yiibaseModel]] を継承しており、通常はデータを表すために使用されます
追加: [[yiibaseModel]] は通常のモデルクラスの親クラスとして使用され、データテーブルとは何の関係もありません。 [[yiidbActiveRecord]] は通常、通常のモデル クラスの親クラスですが、データ テーブルに関連しています (翻訳: [[yiidbActiveRecord]] クラスは実際には [[yiibaseModel]] を継承し、データベース処理を追加します)。

のメソッドは、データ検証ルールのコレクションを返すために使用されます。上記で宣言された検証ルールは次のことを意味します。

すべての値は必須です EntryForm 类包含 nameemail 两个公共成员,用来储存用户输入的数据。它还包含一个名为 rules()

    の値は電子メールルールの検証を満たす必要があります
  • nameemail
  • ユーザーが送信したデータを処理する email オブジェクトがある場合は、その [[yiibaseModel::validate()|validate()]] メソッドを呼び出してデータ検証をトリガーできます。データの検証が失敗した場合、[[yiibaseModel::hasErrors|hasErrors]] 属性は true に設定されます。どのようなエラーが発生したかを知りたい場合は、[[yiibaseModel::getErrors|getErrors]] を呼び出します。
りー

EntryForm

2. オペレーションを作成します

次に、新しく作成したモデルを で操作する必要があります。アクションの作成と使用については、「Say hello」セクションで説明しました。

りー

site 控制器中创建一个 entryこの操作では、まず

オブジェクトが作成されます。次に、ユーザーが送信したデータを $_POST から収集してみます。これは、Yii の [[yiiwebRequest::post()]] メソッドによって収集されます。モデルにデータが正常に入力された場合 (つまり、ユーザーが HTML フォームを送信した場合)、操作は [[yiibaseModel::validate()|validate()]] を呼び出して、ユーザーが有効なデータを送信したことを確認します。

追加: 式 Yii::$app は、グローバルにアクセス可能なシングルトンである EntryForm 对象。然后尝试从 $_POST

application

インスタンスを表します。同時に、Yii::$app 代表应用实例,它是一个全局可访问的单例。同时它也是一个服务定位器,能提供requestresponsedb 等等特定功能的组件。在上面的代码里就是使用 request 组件来访问应用实例收到的 $_POSTサービスロケーター

でもあり、requestresponsedbなどの特定の機能をコンポーネントに提供できます。 > など。上記のコードでは、request コンポーネントを使用して、アプリケーション インスタンスによって受信された $_POST データにアクセスします。

entry-confirm 的视图去确认用户输入的数据。如果没填表单就提交,或数据包含错误(译者:如 email 格式不对),entry

ユーザーがフォームを送信すると、操作によって という名前のビューがレンダリングされ、フォームと検証エラーの詳細とともに出力がレンダリングされます。 注: この簡単な例では、有効なデータを含む確認ページのみを表示します。実際には、フォームの繰り返し送信の問題

を避けるために、[[yiiwebController::refresh()|refresh()]] または [[yiiwebController::redirect()|redirect()]] の使用を検討する必要があります。

3. ビューを作成します

entry-confirmentry。他们会被刚才创建的 entry

entry-confirm 视图简单地显示提交的 name 和 email 数据。视图文件保存在 views/site/entry-confirm.php最後に2つのビューファイルを作成します

レンダリングを操作します。
りー

entry 视图显示一个 HTML 表单。视图文件保存在 views/site/entry.php

りー

begin()end()

このビューは、強力なウィジェット [[yiiwidgetsActiveForm|ActiveForm]] を使用して HTML フォームを生成します。 は、フォームの開始タグと終了タグをそれぞれレンダリングするために使用されます。 [[yiiwidgetsActiveForm::field()|field()]] メソッドは、これら 2 つのメソッドの間で入力ボックスを作成するために使用されます。最初の入力ボックスは「名前」用で、2 番目の入力ボックスは「電子メール」用です。次に、 [[yiihelpersHtml::submitButton()]] メソッドを使用して送信ボタンを生成します。

りー

ウィジェットを使用することを忘れないでください。これら 2 つを導入する必要があります

上記は、内容の側面も含めて Yii でのフォームの使用法を紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。 🎜 🎜 🎜
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境