検索
ホームページPHPフレームワークYIIyii フレームワークでフォームを使用する方法

yii フレームワークでフォームを使用する方法

ユーザーがデータを送信できるフォーム ページを作成する方法。このページには、名前入力ボックスと電子メール入力ボックスを含むフォームが表示されます。これら 2 つの部分の情報を送信すると、ユーザーが入力した情報がページに表示されます。 (推奨学習: yii フレームワーク)

この目標を達成するには、1 つの操作と 2 つのビューの作成に加えて、モデルも作成する必要があります。

このチュートリアルを通じて、次のことを学習します:

ユーザーがフォームを通じて入力したデータを表すモデルを作成する

検証するルールを宣言する入力データ

ビューでの HTML フォームの生成

モデルの作成

モデル クラス EntryForm は、ユーザーから要求されたデータを表します。は次のようになり、models/EntryForm.php ファイルに保存されます。

<?php

namespace app\models;

use Yii;
use yii\base\Model;

class EntryForm extends Model
{
    public $name;
    public $email;

    public function rules()
    {
        return [
            [[&#39;name&#39;, &#39;email&#39;], &#39;required&#39;],
            [&#39;email&#39;, &#39;email&#39;],
        ];
    }
}

このクラスは、Yii が提供する基本クラス yii\base\Model を継承しており、通常はデータを表すために使用されます。

信息: yii\base\Model 被用于普通模型类的父类并与数据表无关。yii\db\ActiveRecord 通常是普通模型类的父类但与数据表有关联(译注:yii\db\ActiveRecord 类其实也是继承自 yii\base\Model,增加了数据库处理)。

EntryForm クラスには、name と email という 2 つのパブリック メンバーが含まれており、ユーザーが入力したデータを保存するために使用されます。データ検証ルールのコレクションを返す rules() というメソッドも含まれています。上記で宣言された検証ルールは次のことを示しています:

名前と電子メールの値は両方とも必須です

電子メールの値は電子メール ルールの検証を満たす必要があります

システムがある場合ユーザーが送信したデータ EntryForm オブジェクトを処理する場合、その validate() メソッドを呼び出してデータ検証をトリガーできます。データ検証に失敗した場合、hasErrors 属性は true に設定されます。どのようなエラーが発生したかを知りたい場合は、getErrors を呼び出します。

<?php
$model = new EntryForm();
$model->name = &#39;Qiang&#39;;
$model->email = &#39;bad&#39;;
if ($model->validate()) {
    // 验证成功!
} else {
    // 失败!
    // 使用 $model->getErrors() 获取错误详情
}

アクションの作成

次に、サイト コントローラーで新しいモデルのエントリ操作を作成する必要があります。

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\EntryForm;

class SiteController extends Controller
{
    // ...现存的代码...

    public function actionEntry()
    {
        $model = new EntryForm;

        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            // 验证 $model 收到的数据

            // 做些有意义的事 ...

            return $this->render(&#39;entry-confirm&#39;, [&#39;model&#39; => $model]);
        } else {
            // 无论是初始化显示还是数据验证错误
            return $this->render(&#39;entry&#39;, [&#39;model&#39; => $model]);
        }
    }
}

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

信息: 表达式 Yii::$app 代表应用实例,它是一个全局可访问的单例。 同时它也是一个服务定位器, 能提供 request,response,db 等等特定功能的组件。 在上面的代码里就是使用 request 组件来访问应用实例收到的 $_POST 数据。

ユーザーがフォームを送信すると、操作により、entry-confirm という名前のビューがレンダリングされ、ユーザーが入力したデータを確認します。フォームに記入せずにフォームが送信された場合、またはデータにエラーが含まれている場合 (翻訳者: 電子メールの形式が間違っているなど)、エントリ ビューはフォームと検証エラーの詳細とともに出力をレンダリングします。

注: この単純な例では、有効なデータを含む確認ページのみが表示されます。実際には、フォームの繰り返し送信の問題を回避するために、refresh() または redirect() の使用を検討する必要があります。

ビューを作成しますか?

最後に、エントリ確認とエントリの 2 つのビュー ファイルを作成します。これらは、作成したばかりの入力操作によってレンダリングされます。

入力確認ビューには、送信された名前と電子メール データが表示されるだけです。ビュー ファイルは、views/site/entry-confirm.php に保存する必要があります。

<?php
use yii\helpers\Html;
?>
<p>You have entered the following information:</p>
<ul>
    <li><label>Name</label>: <?= Html::encode($model->name) ?></li>
    <li><label>Email</label>: <?= Html::encode($model->email) ?></li>
</ul>

エントリ ビューには HTML フォームが表示されます。ビュー ファイルは、views/site/entry.php に保存する必要があります。

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
    <?= $form->field($model, &#39;name&#39;) ?>
    <?= $form->field($model, &#39;email&#39;) ?>
    <div class="form-group">
        <?= Html::submitButton(&#39;Submit&#39;, [&#39;class&#39; => &#39;btn btn-primary&#39;]) ?>
    </div>
<?php ActiveForm::end(); ?>

ブラウザを使用して次の URL にアクセスし、動作するかどうかを確認します。

http://hostname/index.php?r=site/entry

2 つの入力ボックスのあるフォームを含むページが表示されます。各入力ボックスの前には、入力する必要があるデータの種類を示すラベルがあります。何も入力せずに送信ボタンをクリックしたり、間違った形式の電子メール アドレスを入力したりすると、対応する入力ボックスの下にエラー メッセージが表示されます。

yii フレームワークでフォームを使用する方法有効な名前と電子メール情報を入力して送信すると、送信したデータを示す確認ページが表示されます。

yii フレームワークでフォームを使用する方法

以上がyii フレームワークでフォームを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Yii in Action:実際の例とアプリケーションYii in Action:実際の例とアプリケーションApr 19, 2025 am 12:03 AM

YIIフレームワークは、あらゆるサイズのWebアプリケーションの開発に適しており、その利点は高性能で豊富な機能セットにあります。 1)YIIはMVCアーキテクチャを採用しており、そのコアコンポーネントにはActiverCord、ウィジェット、GIIツールが含まれます。 2)要求処理プロセスを通じて、YIIはHTTP要求を効率的に処理します。 3)基本的な使用法は、コントローラーとビューを作成する簡単な例を示しています。 4)高度な使用は、ActiverCordを介したデータベース操作の柔軟性を示しています。 5)デバッグスキルには、デバッグツールバーとロギングシステムの使用が含まれます。 6)パフォーマンスの最適化キャッシュとデータベースクエリの最適化を使用し、コーディング仕様と依存関係インジェクションに従ってコードの品質を向上させることをお勧めします。

Yii2にエラープロンプトを表示する方法Yii2にエラープロンプトを表示する方法Apr 18, 2025 pm 11:09 PM

Yii2には、エラープロンプトを表示する主な方法が2つあります。 1つは、Yii :: $ app-&amp; gt; errorhandler-&amp; gt; exception()を使用して、例外が発生したときにエラーを自動的にキャッチおよび表示することです。もう1つは、$ this-&amp; gt; adderror()を使用することです。これは、モデル検証が失敗したときにエラーを表示し、$ model&amp; gt; getErrors()を介してビューでアクセスできます。ビューでは、if($ errors = $ model-&amp; gt; getErrors())を使用できます。

Yi2とTP5の違いは何ですかYi2とTP5の違いは何ですかApr 18, 2025 pm 11:06 PM

PHPフレームワークテクノロジーの継続的な開発により、Yi2とTP5は2つの主流フレームワークとして多くの注目を集めています。それらはすべて、優れたパフォーマンス、豊富な機能、堅牢性で知られていますが、いくつかの違いと利点と短所があります。これらの違いを理解することは、開発者がフレームワークを選択するために重要です。

YIフレームワークに適したソフトウェアは何ですか? YIフレームワーク用の推奨ソフトウェアYIフレームワークに適したソフトウェアは何ですか? YIフレームワーク用の推奨ソフトウェアApr 18, 2025 pm 11:03 PM

記事の最初の段落の要約:YIフレームワークアプリケーションを開発するソフトウェアを選択する場合、複数の要因を考慮する必要があります。 XcodeやAndroid Studioなどのネイティブモバイルアプリケーション開発ツールは、強力な制御と柔軟性を提供できますが、Reactネイティブやフラッターなどのクロスプラットフォームフレームワークは、一度に複数のプラットフォームに展開できる利点にますます人気が高まっています。モバイル開発を新しい開発者向けに、AppsheetやGlideなどの低コードまたはノーコードプラットフォームは、アプリケーションをすばやく簡単に構築できます。さらに、AWS AmplifyやFirebaseなどのクラウドサービスプロバイダーは包括的なツールを提供します

Yi2のレートを制限する方法Yi2のレートを制限する方法Apr 18, 2025 pm 11:00 PM

Yi2 Rate Limiting Guideは、Yi2アプリケーションでデータ転送速度を制御する方法に関する包括的なガイドをユーザーに提供します。レート制限を実装することにより、ユーザーはアプリケーションのパフォーマンスを最適化し、過度の帯域幅の消費を防ぎ、安定した信頼性の高い接続を確保できます。このガイドでは、ユーザーのさまざまなニーズを満たすために、さまざまなプラットフォームとシナリオをカバーするYi2のレート制限設定を構成する方法を段階的に紹介します。

YIIフレームワークとは何ですか? YIIフレームワークの使用方法に関するチュートリアルYIIフレームワークとは何ですか? YIIフレームワークの使用方法に関するチュートリアルApr 18, 2025 pm 10:57 PM

記事の概要:YIIフレームワークは、動的でスケーラブルなWebアプリケーションを作成するための効率的で柔軟なPHPフレームワークです。高性能で軽量で使いやすい機能で知られています。この記事では、YIIフレームワークに関する包括的なチュートリアルを提供し、インストールからアプリケーションの構成まですべてをカバーします。このガイドは、初心者や経験豊富な開発者がYIIの力を活用して、信頼できる保守可能なWebソリューションを構築できるように設計されています。

パブリック機能を呼び出す方法に関する最新のチュートリアルパブリック機能を呼び出す方法に関する最新のチュートリアルApr 18, 2025 pm 10:54 PM

この記事では、Easy Language(YI)言語で実装されているパブリック関数の呼び出しに関する最新のチュートリアルを紹介します。初心者向けの場合、言語の簡単なプログラミング言語は簡単に習得できます。この記事では、ユーザーがYIアプリケーションでパブリック機能を呼び出す方法を習得するための詳細なステップバイステップガイドを提供します。このチュートリアルに従うことにより、ユーザーは一般的な機能を定義、ロード、呼び出す方法を学び、それによりコードの再利用性と柔軟性を高めます。

Yii2とは何ですか? Yii2の利点と短所は何ですか?Yii2とは何ですか? Yii2の利点と短所は何ですか?Apr 18, 2025 pm 10:51 PM

Yii2は、開発者から広く称賛されている強力なPHPフレームワークです。高性能、スケーラビリティ、ユーザーフレンドリーなインターフェイスにより、大規模で複雑なWebアプリケーションを構築するのに理想的になります。ただし、他のフレームワークと同様に、Yii2には考慮すべきいくつかの利点と短所があります。

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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

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

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境