Yii framework est un framework PHP hautes performances. Son modèle de conception MVC et ses fonctionnalités de développement rapide le rendent idéal pour créer des applications Web. Cet article vous présentera comment utiliser le framework Yii pour créer un site Web de consultation en santé.
Avant de commencer, assurez-vous d'avoir installé PHP et MySQL, et d'avoir installé le framework Yii sur le serveur.
Afin de stocker les informations sur les utilisateurs et les articles, nous devons créer une base de données MySQL nommée Health. Créez deux tables dans la base de données, à savoir les utilisateurs et les publications. Parmi eux, la table des utilisateurs est utilisée pour stocker les informations sur les utilisateurs et la table des publications est utilisée pour stocker les informations sur les articles.
Lors de la création de la table utilisateur, nous devons inclure les champs suivants :
Lors de la création de la table article, nous devons inclure les champs suivants :
Ouvrez le fichier config/web.php dans le répertoire d'installation du framework Yii et configurez la connexion à la base de données information. Modifier le contenu suivant :
'db' => [ 'class' => 'yiidbConnection', 'dsn' => 'mysql:host=localhost;dbname=health', 'username' => 'your_database_username', 'password' => 'your_database_password', 'charset' => 'utf8', ],
Dans le framework Yii, le système d'authentification des utilisateurs est intégré et nous pouvons l'utiliser pour gérer la connexion et l’enregistrement des utilisateurs. Tout d’abord, nous devons créer des actions de connexion et d’enregistrement dans le fichier 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, ]); }
Créez des modèles LoginForm et SignupForm pour vérifier les informations de connexion et d'enregistrement des utilisateurs.
Enfin, ajoutez le code suivant au fichier SiteController.php pour restreindre l'accès des utilisateurs à certaines pages et ne pouvoir y accéder qu'après s'être connectés.
public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => ['login', 'signup'], 'allow' => true, 'roles' => ['?'], ], [ 'actions' => ['logout', 'index', 'create-post'], 'allow' => true, 'roles' => ['@'], ], ], ], ]; }
Pour que les utilisateurs puissent publier et gérer des articles, nous devons créer les actions suivantes dans PostController Fichier .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; }
Page à propos
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!