Créer un site Web de questions et réponses à l'aide du framework Yii
Jun 21, 2023 am 09:36 AMYii framework est un framework PHP puissant qui aide les développeurs à créer rapidement des applications Web hautes performances et évolutives. Cet article explique comment utiliser le framework Yii pour créer un site Web de questions-réponses.
- Préparation de l'environnement
Avant de commencer, nous devons nous assurer que les logiciels et outils nécessaires tels que PHP et MySQL ont été correctement configurés dans le local environnement de développement. Dans le même temps, nous devons également installer le framework Yii pour faciliter les travaux de développement ultérieurs.
Installer le framework Yii est très simple, il suffit d'exécuter la commande suivante :
composer create-project yiisoft/yii2-app-basic <project_name>
où <project_name>
est le nom du projet en cours . <project_name>
為當(dāng)前項目的名稱。
- 數(shù)據(jù)庫設(shè)計
在創(chuàng)建問答網(wǎng)站之前,我們需要先設(shè)計好相關(guān)的數(shù)據(jù)庫結(jié)構(gòu)。在本文中,我們將使用以下的數(shù)據(jù)庫表:
- user:用于存儲用戶信息,包括用戶名、密碼、郵箱等;
- question:用于存儲問題信息,包括問題的標(biāo)題、內(nèi)容、發(fā)布時間等;
- answer:用于存儲回答信息,包括回答的內(nèi)容、回答時間等。
這里我們使用MySQL作為后端數(shù)據(jù)庫,并通過以下命令創(chuàng)建對應(yīng)的數(shù)據(jù)庫和表格:
CREATE DATABASE IF NOT EXISTS my_db; USE my_db; CREATE TABLE IF NOT EXISTS `user` ( `id` INT UNSIGNED AUTO_INCREMENT, `username` VARCHAR(64) NOT NULL, `password` VARCHAR(64) NOT NULL, `email` VARCHAR(64) NOT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `question` ( `id` INT UNSIGNED AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL, `content` TEXT, `user_id` INT UNSIGNED NOT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES user(`id`) ); CREATE TABLE IF NOT EXISTS `answer` ( `id` INT UNSIGNED AUTO_INCREMENT, `content` TEXT, `question_id` INT UNSIGNED NOT NULL, `user_id` INT UNSIGNED NOT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), FOREIGN KEY (`question_id`) REFERENCES question(`id`), FOREIGN KEY (`user_id`) REFERENCES user(`id`) );
注意,我們在表格中設(shè)置了外鍵用于關(guān)聯(lián)不同的數(shù)據(jù)表。
- 創(chuàng)建模型
在Yii框架中,模型是用于操作數(shù)據(jù)庫的最常用的工具。我們需要創(chuàng)建對應(yīng)的模型文件來操作之前創(chuàng)建的數(shù)據(jù)庫表格。
在應(yīng)用根目錄下的models
文件夾中,我們創(chuàng)建三個模型文件User.php
、Question.php
、Answer.php
。以User.php
為例,代碼如下:
<?php namespace appmodels; use yiidbActiveRecord; class User extends ActiveRecord { public function rules() { return [ [['username', 'password', 'email'], 'required'], ['email', 'email'], ['username', 'unique'], ]; } public static function findByUsername($username) { return static::findOne(['username' => $username]); } public function validatePassword($password) { return $this->password === md5($password); } public function getQuestions() { return $this->hasMany(Question::className(), ['user_id' => 'id']); } public function getAnswers() { return $this->hasMany(Answer::className(), ['user_id' => 'id']); } }
在這個文件中,我們定義了模型的屬性、驗證規(guī)則、查詢方法和關(guān)聯(lián)關(guān)系等。
- 創(chuàng)建控制器
控制器是用于處理路由和響應(yīng)請求的工具。在應(yīng)用根目錄下的controllers
文件夾中,我們創(chuàng)建三個控制器文件SiteController.php
、QuestionController.php
、AnswerController.php
。以SiteController.php
為例,代碼如下:
<?php namespace appcontrollers; use yiiwebController; class SiteController extends Controller { public function actionIndex() { return $this->render('index'); } }
在這個文件中,我們定義了一個名為actionIndex
的方法,用于渲染首頁模板。
- 創(chuàng)建視圖
視圖是應(yīng)用程序的用戶界面部分,我們需要創(chuàng)建對應(yīng)的視圖文件來渲染內(nèi)容。在應(yīng)用根目錄下的views
文件夾中,我們創(chuàng)建三個文件夾site
、question
、answer
,分別對應(yīng)之前創(chuàng)建的三個控制器。
在views/site
文件夾中,我們創(chuàng)建一個名為index.php
的文件,用于渲染首頁模板。代碼如下:
<h1>Welcome to the Question & Answer website!</h1>
在views/question
文件夾中,我們創(chuàng)建一個名為index.php
的文件,用于渲染問題列表頁面。代碼如下:
<h1>Questions</h1> <?php foreach ($questions as $question): ?> <div> <h2><?= $question->title ?></h2> <p><?= $question->content ?></p> </div> <?php endforeach; ?>
在views/answer
文件夾中,我們創(chuàng)建一個名為create.php
的文件,用于渲染回答編輯頁面。代碼如下:
<h1>Create Answer</h1> <?= $this->render('_form', ['model' => $model]) ?>
- 創(chuàng)建路由
在Yii框架中,路由是用于將URL地址映射到對應(yīng)的控制器和方法。我們需要在應(yīng)用根目錄下的config
文件夾中的web.php
文件中創(chuàng)建對應(yīng)的路由規(guī)則。代碼如下:
return [ 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '' => 'site/index', 'question' => 'question/index', 'answer/create/<question_id:d+>' => 'answer/create', ], ], ], ];
注意,我們在answer/create
路由中使用了動態(tài)參數(shù)question_id
,這個參數(shù)將在創(chuàng)建回答時用到。
- 創(chuàng)建授權(quán)系統(tǒng)
在問答網(wǎng)站中,用戶需要進(jìn)行登錄才能進(jìn)行提問和回答。我們需要創(chuàng)建一個基本的授權(quán)系統(tǒng)來實現(xiàn)用戶登錄和注冊的功能。
在SiteController.php
中,我們添加了兩個方法actionLogin
和actionSignup
,用于渲染登錄和注冊頁面。在UserController.php
中,我們添加了一個名為actionCreate
的方法,用于處理用戶注冊請求。具體代碼實現(xiàn)略。
- 實現(xiàn)問答功能
在問答網(wǎng)站中,用戶需要進(jìn)行提問和回答。我們需要創(chuàng)建相關(guān)的功能來實現(xiàn)這兩個操作。
在QuestionController.php
中,我們添加了兩個方法actionIndex
和actionCreate
,用于渲染問題列表和問題編輯頁面。在QuestionController.php
中,我們創(chuàng)建了一個名為actionCreate
的方法,用于處理問題創(chuàng)建請求。具體代碼實現(xiàn)略。
在AnswerController.php
中,我們創(chuàng)建了一個名為actionCreate
- Conception de base de données#????##????##????#Avant de créer un site Web de questions-réponses, nous devons d'abord concevoir la structure de la base de données appropriée. Dans cet article, nous utiliserons la table de base de données suivante?: #????#
- #????#user?: utilisée pour stocker les informations sur l'utilisateur, notamment le nom d'utilisateur, le mot de passe, l'e-mail, etc.?; question?: utilisé pour stocker les informations sur la question, y compris le titre de la question, le contenu, l'heure de publication, etc.?; #????##????#answer?: utilisé pour stocker les informations sur la réponse, y compris le contenu de la réponse, l'heure de réponse, etc. #????#
- #????#Créer un modèle #????##????##????#Dans le framework Yii, les modèles sont les outils les plus couramment utilisés pour faire fonctionner des bases de données. Nous devons créer les fichiers modèles correspondants pour faire fonctionner les tables de base de données créées précédemment. #????##????#Dans le dossier
- Tests
models
sous le répertoire racine de l'application, nous créons trois fichiers modèles User.php
, Question.php, <code>Answer.php
. En prenant comme exemple User.php
, le code est le suivant : #????#rrreee#????#Dans ce fichier, nous définissons les attributs du modèle, les règles de validation, les méthodes de requête et les relations, etc. #????#- #????#Créer un contr?leur #????##????##????#Les contr?leurs sont des outils utilisés pour gérer le routage et répondre aux requêtes. Dans le dossier
controllers
sous le répertoire racine de l'application, nous créons trois fichiers de contr?leur SiteController.php
, QuestionController.php
, AnswerController.php
. En prenant SiteController.php
comme exemple, le code est le suivant?: #????#rrreee#????#Dans ce fichier, nous définissons une méthode nommée actionIndex
pour rendre le modèle de page d'accueil. #????#- #????#Créer une vue #????##????##????#La vue est la partie de l'interface utilisateur de l'application, nous devons créer le fichier de vue correspondant pour restituer le contenu. Dans le dossier
views
sous le répertoire racine de l'application, nous créons respectivement trois dossiers site
, question
et answer
correspondant aux trois contr?leurs créés précédemment. #????##????#Dans le dossier views/site
, nous créons un fichier nommé index.php
pour le rendu du modèle de page d'accueil. Le code est le suivant?: #????#rrreee#????#Dans le dossier views/question
, nous créons un fichier nommé index.php
pour le rendu de la page de liste de questions . Le code est le suivant?: #????#rrreee#????#Dans le dossier views/answer
, nous créons un fichier nommé create.php
pour le rendu de la page d'édition des réponses. Le code est le suivant?: #????#rrreee- #????#Create route#????##????##????#Dans le framework Yii, le routage est utilisé pour mapper les adresses URL vers Contr?leurs et méthodes correspondants. Nous devons créer les règles de routage correspondantes dans le fichier
web.php
du dossier config
dans le répertoire racine de l'application. Le code est le suivant?: #????#rrreee#????#Notez que nous avons utilisé le paramètre dynamique question_id
dans la route answer/create
. Ce paramètre sera utilisé lorsque. créer la réponse. #????#- #????#Créer un système d'autorisation#????##????##????#Sur le site Web de questions-réponses, les utilisateurs doivent se connecter pour poser et répondre à des questions. Nous devons créer un système d'autorisation de base pour mettre en ?uvre les fonctions de connexion et d'enregistrement des utilisateurs. #????##????#Dans
SiteController.php
, nous avons ajouté deux méthodes actionLogin
et actionSignup
pour le rendu de la page de connexion et d'inscription. Dans UserController.php
, nous avons ajouté une méthode nommée actionCreate
pour gérer les demandes d'enregistrement des utilisateurs. L'implémentation spécifique du code est omise. #????#- #????# Implémenter la fonction de questions et réponses #????##????##????# Dans le site Web de questions et réponses, les utilisateurs doivent poser et répondre à des questions. Nous devons créer des fonctions pertinentes pour mettre en ?uvre ces deux opérations. #????##????#Dans
QuestionController.php
, nous avons ajouté deux méthodes actionIndex
et actionCreate
pour afficher la liste de questions et la page d'édition des problèmes. . Dans QuestionController.php
, nous avons créé une méthode appelée actionCreate
pour gérer les demandes de création de questions. L'implémentation spécifique du code est omise. #????##????#Dans AnswerController.php
, nous avons créé une méthode nommée actionCreate
pour gérer les demandes de création de réponses. L'implémentation spécifique du code est omise. #????#Après le travail de développement ci-dessus, nous avons réalisé un site Web de questions-réponses de base. Nous pouvons ouvrir la liste des problèmes en visitant http://localhost/<project_name>
來打開首頁,通過訪問http://localhost/<project_name>/question
. Nous pouvons également poser et répondre à des questions via des utilisateurs enregistrés.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

De nombreux amis ont exprimé leur souhait de savoir comment créer une famille dans le logiciel Gree+. Voici la méthode de fonctionnement pour vous. Amis qui veulent en savoir plus, venez jeter un ?il avec moi. Tout d’abord, ouvrez le logiciel Gree+ sur votre téléphone mobile et connectez-vous. Ensuite, dans la barre d'options en bas de la page, cliquez sur l'option ? Mon ? à l'extrême droite pour accéder à la page du compte personnel. 2. Après être arrivé sur ma page, il y a une option ? Créer une famille ? sous ? Famille ?. Après l'avoir trouvée, cliquez dessus pour entrer. 3. Accédez ensuite à la page pour créer une famille, entrez le nom de famille à définir dans la zone de saisie en fonction des invites, puis cliquez sur le bouton ??Enregistrer?? dans le coin supérieur droit après l'avoir saisi. 4. Enfin, une invite ??enregistrement réussi?? appara?tra au bas de la page, indiquant que la famille a été créée avec succès.

Titre : Guide du débutant Realme Phone : Comment créer des dossiers sur Realme Phone ? Dans la société actuelle, les téléphones portables sont devenus un outil indispensable dans la vie des gens. En tant que marque de smartphones populaire, RealMobile est appréciée des utilisateurs pour son système d'exploitation simple et pratique. Lors de l'utilisation des téléphones Realme, de nombreuses personnes peuvent être confrontées au besoin d'organiser des fichiers et des applications sur le téléphone, et la création de dossiers est un moyen efficace. Cet article explique comment créer des dossiers sur les téléphones Realme pour aider les utilisateurs à mieux gérer le contenu de leur téléphone. Non.

Cet article vous intéressera si vous souhaitez utiliser GIMP pour la création de pixel art sous Windows. GIMP est un logiciel d'édition graphique bien connu qui est non seulement gratuit et open source, mais qui aide également les utilisateurs à créer facilement de belles images et de superbes designs. En plus de convenir aussi bien aux concepteurs débutants qu'aux professionnels, GIMP peut également être utilisé pour créer du pixel art, une forme d'art numérique qui utilise les pixels comme seuls éléments de base pour dessiner et créer. Comment créer du pixel art dans GIMP Voici les principales étapes pour créer des images pixel à l'aide de GIMP sur un PC Windows : Téléchargez et installez GIMP, puis lancez l'application. Créez une nouvelle image. Redimensionnez la largeur et la hauteur. Sélectionnez l'outil Crayon. Définissez le type de pinceau sur pixels. installation

Comment utiliser Highcharts pour créer un diagramme de Gantt nécessite des exemples de code spécifiques. Introduction?: Le diagramme de Gantt est un formulaire de diagramme couramment utilisé pour afficher la progression du projet et la gestion du temps. Il peut afficher visuellement l'heure de début, l'heure de fin et la progression de la tache. Highcharts est une puissante bibliothèque de graphiques JavaScript qui fournit des types de graphiques riches et des options de configuration flexibles. Cet article explique comment utiliser Highcharts pour créer un diagramme de Gantt et donne des exemples de code spécifiques. 1. Tableau haut

Commencez le parcours du projet Django?: démarrez à partir de la ligne de commande et créez votre premier projet Django. Django est un framework d'application Web puissant et flexible. Il est basé sur Python et fournit de nombreux outils et fonctions nécessaires au développement d'applications Web. Cet article vous amènera à créer votre premier projet Django à partir de la ligne de commande. Avant de commencer, assurez-vous que Python et Django sont installés. étape 1 : Créer le répertoire du projet Tout d'abord, ouvrez la fenêtre de ligne de commande et créez un nouveau répertoire

Dans iOS17, Apple a ajouté une fonctionnalité d'affichage de contacts à ses applications Téléphone et Contacts couramment utilisées. Cette fonctionnalité permet aux utilisateurs de définir des affiches personnalisées pour chaque contact, rendant le carnet d'adresses plus visuel et personnel. Les affiches de contact peuvent aider les utilisateurs à identifier et à localiser des contacts spécifiques plus rapidement, améliorant ainsi l'expérience utilisateur. Grace à cette fonctionnalité, les utilisateurs peuvent ajouter des images ou des logos spécifiques à chaque contact en fonction de leurs préférences et de leurs besoins, ce qui rend l'interface du carnet d'adresses plus vivante. Apple dans iOS17 offre aux utilisateurs d'iPhone une nouvelle fa?on de s'exprimer et ajoute une affiche de contact personnalisable. La fonction Contact Poster vous permet d'afficher un contenu unique et personnalisé lorsque vous appelez d'autres utilisateurs d'iPhone. toi

Le fichier MDF est un format de fichier de base de données courant et c'est l'un des fichiers principaux de la base de données Microsoft SQL Server. Dans les systèmes de gestion de bases de données, les fichiers MDF sont utilisés pour sauvegarder les principales données de la base de données, notamment les tables, les index, les procédures stockées, etc. La création d'un fichier MDF est l'une des étapes clés de la création d'une base de données. Certaines méthodes courantes seront présentées ci-dessous. Utilisation de SQLServerManagementStudio(SSMS)SQLServerManag

Comment Scanner crée-t-il un document ? Vous pouvez créer de nouveaux documents dans Scanner APP. La plupart des utilisateurs ne savent pas comment créer des documents. Vient ensuite le didacticiel graphique que l'éditeur propose aux utilisateurs sur la fa?on de créer des documents avec Scanner. regarde! Tutoriel d'utilisation de Scanner King Comment créer des documents avec Scanner King 1. Ouvrez d'abord l'application Scanner King, puis cliquez sur le bouton [trois points] dans le coin supérieur droit de la page principale. 2. Ensuite, la barre de fonctions se développera en dessous, cliquez sur?; le service [Nouveau dossier]?;3. Ensuite, une petite fenêtre appara?tra, entrez le nom dans la zone du nouveau dossier et cliquez sur [OK]?; 4. Enfin, après avoir créé le dossier, entrez le dossier et revenez à la page Mes documents?; pour voir le dossier de fichiers nouvellement créé.
