Yii フレームワークは高性能 PHP フレームワークで、MVC 設計パターンと迅速な開発機能により、Web アプリケーションの構築に最適です。この記事では、Yii フレームワークを使用して健康相談 Web サイトを作成する方法を紹介します。
始める前に、PHP と MySQL がインストールされていること、および Yii フレームワークがサーバーにインストールされていることを確認してください。
ユーザーと記事の情報を保存するには、health という名前の MySQL データベースを作成する必要があります。データベースにユーザーと投稿という 2 つのテーブルを作成します。このうち、users テーブルはユーザー情報を格納するために使用され、posts テーブルは記事情報を格納するために使用されます。
ユーザー テーブルを作成するときは、次のフィールドを含める必要があります。
article テーブルを作成するときは、次のフィールドを含める必要があります:
Yii フレームワークのインストール ディレクトリにある config/web.php ファイルを開き、データベース接続情報を設定します。次の内容を変更します。
'db' => [ 'class' => 'yiidbConnection', 'dsn' => 'mysql:host=localhost;dbname=health', 'username' => 'your_database_username', 'password' => 'your_database_password', 'charset' => 'utf8', ],
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' => ['@'], ], ], ], ]; }
ユーザーが記事を公開および管理できるようにするには、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.'); }
public function rules() { return [ [['title', 'content'], 'required'], ['title', 'string', 'max' => 255], ['content', 'string'], ]; }
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; }
以上がYii フレームワークを使用して健康相談 Web サイトを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。