ホームページ  >  記事  >  バックエンド開発  >  Yii はフォームを使用します

Yii はフォームを使用します

WBOY
WBOYオリジナル
2016-08-08 09:33:00751ブラウズ

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 までご連絡ください。