Yii フレームワークを使用して健康相談 Web サイトを作成する

WBOY
リリース: 2023-06-21 15:34:36
オリジナル
992 人が閲覧しました

Yii フレームワークは高性能 PHP フレームワークで、MVC 設計パターンと迅速な開発機能により、Web アプリケーションの構築に最適です。この記事では、Yii フレームワークを使用して健康相談 Web サイトを作成する方法を紹介します。

  1. 準備

始める前に、PHP と MySQL がインストールされていること、および Yii フレームワークがサーバーにインストールされていることを確認してください。

  1. データベースの作成

ユーザーと記事の情報を保存するには、health という名前の MySQL データベースを作成する必要があります。データベースにユーザーと投稿という 2 つのテーブルを作成します。このうち、users テーブルはユーザー情報を格納するために使用され、posts テーブルは記事情報を格納するために使用されます。

ユーザー テーブルを作成するときは、次のフィールドを含める必要があります。

  • id: ユーザーの一意の ID (自動増加)。
  • ユーザー名: ユーザー名。
  • email: ユーザーの電子メール。
  • password: ユーザーのパスワード。暗号化後に保存されます。
  • created_at: ユーザーの作成時刻。
  • updated_at: ユーザーの最終更新時刻。

article テーブルを作成するときは、次のフィールドを含める必要があります:

  • id: 記事の一意の ID (自動インクリメント)。
  • title: 記事のタイトル。
  • content: 記事のコンテンツ。
  • author_id: 記事の著者の ID。
  • created_at: 記事の作成時刻。
  • updated_at: 記事が最後に更新された時刻。
  1. Yii フレームワークの設定

Yii フレームワークのインストール ディレクトリにある config/web.php ファイルを開き、データベース接続情報を設定します。次の内容を変更します。

'db' => [
    'class' => 'yiidbConnection',
    'dsn' => 'mysql:host=localhost;dbname=health',
    'username' => 'your_database_username',
    'password' => 'your_database_password',
    'charset' => 'utf8',
],
ログイン後にコピー
  1. ユーザー認証システムの作成

Yii フレームワークにはユーザー認証システムが統合されており、それを使用してユーザーのログインと管理を行うことができます。登録。まず、SiteController.php ファイルにログインおよび登録アクションを作成する必要があります。

public function actionLogin()
{
    if (!Yii::$app->user->isGuest) {
        return $this->goHome();
    }

    $model = new LoginForm();
    if ($model->load(Yii::$app->request->post()) && $model->login()) {
        return $this->goBack();
    }

    return $this->render('login', [
        'model' => $model,
    ]);
}

public function actionSignup()
{
    $model = new SignupForm();
    if ($model->load(Yii::$app->request->post()) && $model->signup()) {
        return $this->goHome();
    }

    return $this->render('signup', [
        'model' => $model,
    ]);
}
ログイン後にコピー

ユーザーのログイン情報と登録情報を検証するための LoginForm モデルと SignupForm モデルを作成します。

最後に、SiteController.php ファイルに次のコードを追加して、特定のページへのユーザーのアクセスを制限し、ログイン後にのみアクセスできるようにします。

public function behaviors() {
   return [
       'access' => [
           'class' => AccessControl::className(),
           'rules' => [
                [
                    'actions' => ['login', 'signup'],
                    'allow' => true,
                    'roles' => ['?'],
                ],
                [
                    'actions' => ['logout', 'index', 'create-post'],
                    'allow' => true,
                    'roles' => ['@'],
                ],
           ],
       ],
   ];
}
ログイン後にコピー
  1. 記事管理システムの作成

ユーザーが記事を公開および管理できるようにするには、PostController.php ファイルに次のアクションを作成する必要があります。 ##

public function actionCreate()
{
    $model = new Post();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    }

    return $this->render('create', [
        'model' => $model,
    ]);
}

public function actionUpdate($id)
{
    $model = $this->findModel($id);

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    }

    return $this->render('update', [
        'model' => $model,
    ]);
}

public function actionView($id)
{
    return $this->render('view', [
        'model' => $this->findModel($id),
    ]);
}

public function actionIndex()
{
    $searchModel = new PostSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
    ]);
}

protected function findModel($id)
{
    if (($model = Post::findOne($id)) !== null) {
        return $model;
    }

    throw new NotFoundHttpException('The requested page does not exist.');
}
ログイン後にコピー

記事を作成するときは、Post モデルを使用してフォーム データを受け取り、次の検証ルールをモデルに追加する必要があります。

public function rules()
{
    return [
        [['title', 'content'], 'required'],
        ['title', 'string', 'max' => 255],
        ['content', 'string'],
    ];
}
ログイン後にコピー

Web サイトに記事検索機能を追加するには、 Yii フレームワークが提供する検索モデルを使用できます。 models フォルダーの下に PostSearch.php というファイルを作成し、その中に次のコードを追加する必要があります:

public function search($params)
{
    $query = Post::find();

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    $this->load($params);

    if (!$this->validate()) {
        return $dataProvider;
    }

    $query->andFilterWhere(['like', 'title', $this->title]);
    $query->andFilterWhere(['like', 'content', $this->content]);

    return $dataProvider;
}
ログイン後にコピー
    Web サイト ページの作成
これで、作成を開始できます。ウェブサイトのページ。 site という名前のコントローラーを作成し、その中に次のページを作成します:

    ログイン ページ
  • 登録ページ
  • ホームページ
  • 概要ページ
  • お問い合わせページ
各ページには、ヘッダー、フッター、ナビゲーション バー、その他の要素を含むレイアウト ファイルが含まれる必要があります。

    Web サイトの公開
これで、Web サイトをサーバーに公開してテストできます。サイトがブラウザで適切に動作するかどうかを確認し、各機能が適切に動作するかテストします。

結論

Yii フレームワークを使用して健康相談 Web サイトを構築するのは、非常に簡単な作業です。 Yii フレームワークの MVC 設計パターンと迅速な開発機能により、Yii フレームワークは Web アプリケーション開発に理想的な選択肢となります。開発プロセス中、ユーザーにオープンな健康コンサルティング サービスを提供するだけでなく、開発者にフレームワークを学習して適用する機会も提供します。もちろん、Yii フレームワークを使用してより複雑な Web アプリケーションを作成し、その高いパフォーマンスと柔軟性を利用してユーザーに優れたエクスペリエンスを提供することもできます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!