Cipta tapak web Soal Jawab menggunakan rangka kerja Yii
Jun 21, 2023 am 09:36 AMRangka kerja Yii ialah rangka kerja PHP yang berkuasa yang boleh membantu pembangun dengan cepat membina aplikasi web berprestasi tinggi dan boleh skala. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Yii untuk mencipta tapak web Soal Jawab.
- Persediaan persekitaran
Sebelum bermula, kita perlu memastikan perisian dan alatan yang diperlukan seperti PHP dan MySQL telah dikonfigurasikan dengan betul dalam persekitaran pembangunan tempatan. Pada masa yang sama, kami juga perlu memasang rangka kerja Yii untuk memudahkan kerja pembangunan seterusnya.
Memasang rangka kerja Yii adalah sangat mudah, cuma laksanakan arahan berikut:
composer create-project yiisoft/yii2-app-basic <project_name>
di mana <project_name>
ialah nama projek semasa.
- Reka Bentuk Pangkalan Data
Sebelum mencipta tapak web Soal Jawab, kami perlu mereka bentuk struktur pangkalan data yang berkaitan. Dalam artikel ini, kami akan menggunakan jadual pangkalan data berikut:
- pengguna: digunakan untuk menyimpan maklumat pengguna, termasuk nama pengguna, kata laluan, e-mel, dsb.
- soalan: digunakan untuk menyimpan soalan Maklumat, termasuk tajuk soalan, kandungan, masa keluaran, dsb.;
- jawapan: digunakan untuk menyimpan maklumat jawapan, termasuk kandungan jawapan, masa menjawab, dsb.
Di sini kami menggunakan MySQL sebagai pangkalan data back-end dan mencipta pangkalan data dan jadual yang sepadan melalui arahan berikut:
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`) );
Perhatikan bahawa kami telah menetapkan kunci asing dalam jadual untuk mengaitkan lembaran data yang berbeza.
- Buat model
Dalam rangka kerja Yii, model ialah alatan yang paling biasa digunakan untuk mengendalikan pangkalan data. Kita perlu mencipta fail model yang sepadan untuk mengendalikan jadual pangkalan data yang dibuat sebelum ini.
Dalam folder models
di bawah direktori akar aplikasi, kami mencipta tiga fail model User.php
, Question.php
, Answer.php
. Mengambil User.php
sebagai contoh, kodnya adalah seperti berikut:
<?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']); } }
Dalam fail ini, kami mentakrifkan atribut model, peraturan pengesahan, kaedah pertanyaan, perkaitan, dsb.
- Mencipta Pengawal
Pengawal ialah alatan yang digunakan untuk mengendalikan penghalaan dan membalas permintaan. Dalam folder controllers
di bawah direktori akar aplikasi, kami mencipta tiga fail pengawal SiteController.php
, QuestionController.php
dan AnswerController.php
. Mengambil SiteController.php
sebagai contoh, kodnya adalah seperti berikut:
<?php namespace appcontrollers; use yiiwebController; class SiteController extends Controller { public function actionIndex() { return $this->render('index'); } }
Dalam fail ini, kami mentakrifkan kaedah bernama actionIndex
untuk memaparkan templat halaman utama.
- Buat Paparan
Paparan ialah bahagian antara muka pengguna aplikasi, kita perlu mencipta fail paparan yang sepadan untuk memaparkan kandungan. Dalam folder views
di bawah direktori akar aplikasi, kami mencipta tiga folder site
, question
dan answer
, sepadan dengan tiga pengawal yang dibuat sebelum ini.
Dalam folder views/site
, kami mencipta fail bernama index.php
untuk memaparkan templat halaman utama. Kodnya adalah seperti berikut:
<h1>Welcome to the Question & Answer website!</h1>
Dalam folder views/question
, kami mencipta fail bernama index.php
untuk memaparkan halaman senarai isu. Kodnya adalah seperti berikut:
<h1>Questions</h1> <?php foreach ($questions as $question): ?> <div> <h2><?= $question->title ?></h2> <p><?= $question->content ?></p> </div> <?php endforeach; ?>
Dalam folder views/answer
, kami mencipta fail bernama create.php
untuk memaparkan halaman penyuntingan jawapan. Kodnya adalah seperti berikut:
<h1>Create Answer</h1> <?= $this->render('_form', ['model' => $model]) ?>
- Buat laluan
Dalam rangka kerja Yii, penghalaan digunakan untuk memetakan alamat URL kepada pengawal dan kaedah yang sepadan. Kita perlu mencipta peraturan penghalaan yang sepadan dalam fail config
dalam folder web.php
dalam direktori akar aplikasi. Kodnya adalah seperti berikut:
return [ 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '' => 'site/index', 'question' => 'question/index', 'answer/create/<question_id:d+>' => 'answer/create', ], ], ], ];
Perhatikan bahawa kami menggunakan parameter dinamik answer/create
dalam laluan question_id
, yang akan digunakan semasa mencipta jawapan.
- Buat sistem kebenaran
Dalam tapak web Soal Jawab, pengguna perlu log masuk untuk bertanya dan menjawab soalan. Kita perlu mencipta sistem kebenaran asas untuk melaksanakan fungsi log masuk dan pendaftaran pengguna.
Dalam SiteController.php
, kami menambah dua kaedah actionLogin
dan actionSignup
untuk memaparkan halaman log masuk dan pendaftaran. Dalam UserController.php
, kami menambah kaedah bernama actionCreate
untuk mengendalikan permintaan pendaftaran pengguna. Pelaksanaan kod khusus ditinggalkan.
- Laksanakan fungsi Soal Jawab
Dalam laman web Soal Jawab, pengguna perlu bertanya dan menjawab soalan. Kita perlu mencipta fungsi yang berkaitan untuk melaksanakan kedua-dua operasi ini.
Dalam QuestionController.php
, kami menambahkan dua kaedah actionIndex
dan actionCreate
untuk memaparkan senarai isu dan halaman penyuntingan isu. Dalam QuestionController.php
, kami mencipta kaedah bernama actionCreate
yang mengendalikan permintaan penciptaan isu. Pelaksanaan kod khusus ditinggalkan.
Dalam AnswerController.php
, kami mencipta kaedah yang dipanggil actionCreate
yang mengendalikan permintaan penciptaan jawapan. Pelaksanaan kod khusus ditinggalkan.
- Pengujian
Selepas kerja pembangunan di atas, kami telah menyiapkan tapak web Soal Jawab asas. Kita boleh membuka halaman utama dengan melawati http://localhost/<project_name>
dan senarai soalan dengan melawati http://localhost/<project_name>/question
. Kami juga boleh bertanya dan menjawab soalan melalui pengguna berdaftar.
Atas ialah kandungan terperinci Cipta tapak web Soal Jawab menggunakan rangka kerja Yii. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ramai rakan menyatakan bahawa mereka ingin tahu cara membuat keluarga dalam perisian Gree+ Berikut adalah kaedah operasi untuk anda Rakan yang ingin mengetahui lebih lanjut, datang dan lihat dengan saya. Mula-mula, buka perisian Gree+ pada telefon mudah alih anda dan log masuk. Kemudian, dalam bar pilihan di bahagian bawah halaman, klik pilihan "Saya" di hujung kanan untuk memasuki halaman akaun peribadi. 2. Selepas datang ke halaman saya, terdapat pilihan "Buat Keluarga" di bawah "Keluarga". 3. Seterusnya lompat ke halaman untuk mencipta keluarga, masukkan nama keluarga yang akan ditetapkan dalam kotak input mengikut gesaan, dan klik butang "Simpan" di penjuru kanan sebelah atas selepas memasukkannya. 4. Akhir sekali, gesaan "simpan berjaya" akan muncul di bahagian bawah halaman, menunjukkan bahawa keluarga telah berjaya dibuat.

Tajuk: Panduan Pemula Telefon Realme: Bagaimana Membuat Folder pada Telefon Realme? Dalam masyarakat hari ini, telefon bimbit telah menjadi alat yang sangat diperlukan dalam kehidupan manusia. Sebagai jenama telefon pintar popular, Telefon Realme digemari pengguna kerana sistem pengendaliannya yang ringkas dan praktikal. Dalam proses menggunakan telefon Realme, ramai orang mungkin menghadapi situasi di mana mereka perlu mengatur fail dan aplikasi pada telefon mereka, dan mencipta folder ialah cara yang berkesan. Artikel ini akan memperkenalkan cara membuat folder pada telefon Realme untuk membantu pengguna mengurus kandungan telefon mereka dengan lebih baik. Tidak.

Artikel ini akan menarik minat anda jika anda berminat menggunakan GIMP untuk penciptaan seni piksel pada Windows. GIMP ialah perisian penyuntingan grafik terkenal yang bukan sahaja percuma dan sumber terbuka, tetapi juga membantu pengguna mencipta imej dan reka bentuk yang cantik dengan mudah. Selain sesuai untuk pemula dan pereka profesional, GIMP juga boleh digunakan untuk mencipta seni piksel, satu bentuk seni digital yang menggunakan piksel sebagai satu-satunya blok bangunan untuk melukis dan mencipta. Cara Membuat Seni Piksel dalam GIMP Berikut ialah langkah utama untuk mencipta gambar piksel menggunakan GIMP pada PC Windows: Muat turun dan pasang GIMP, kemudian lancarkan aplikasi. Buat imej baharu. Ubah saiz lebar dan tinggi. Pilih alat pensel. Tetapkan jenis berus kepada piksel. sediakan

Cara menggunakan Highcharts untuk mencipta carta Gantt memerlukan contoh kod khusus Pengenalan: Carta Gantt ialah bentuk carta yang biasa digunakan untuk memaparkan kemajuan projek dan pengurusan masa secara visual boleh memaparkan masa mula, masa tamat dan kemajuan tugas. Highcharts ialah perpustakaan carta JavaScript yang berkuasa yang menyediakan jenis carta kaya dan pilihan konfigurasi yang fleksibel. Artikel ini akan memperkenalkan cara menggunakan Highcharts untuk mencipta carta Gantt dan memberikan contoh kod khusus. 1. Carta tinggi

Mulakan perjalanan projek Django: mulakan dari baris arahan dan cipta projek Django pertama anda Django ialah rangka kerja aplikasi web yang berkuasa dan fleksibel Ia berdasarkan Python dan menyediakan banyak alat dan fungsi yang diperlukan untuk membangunkan aplikasi web. Artikel ini akan membawa anda untuk mencipta projek Django pertama anda bermula dari baris arahan. Sebelum memulakan, pastikan anda memasang Python dan Django. Langkah 1: Cipta direktori projek Mula-mula, buka tetingkap baris arahan dan buat direktori baharu

Dalam iOS17, Apple telah menambahkan ciri poster kenalan pada apl Telefon dan Kenalan yang biasa digunakan. Ciri ini membolehkan pengguna menetapkan poster yang diperibadikan untuk setiap kenalan, menjadikan buku alamat lebih visual dan peribadi. Poster kenalan boleh membantu pengguna mengenal pasti dan mencari kenalan tertentu dengan lebih cepat, meningkatkan pengalaman pengguna. Melalui ciri ini, pengguna boleh menambah gambar atau logo tertentu pada setiap kenalan mengikut keutamaan dan keperluan mereka, menjadikan antara muka buku alamat lebih jelas Apple dalam iOS17 menyediakan pengguna iPhone dengan cara baru untuk mengekspresikan diri mereka, dan menambah poster kenalan yang boleh diperibadikan. Ciri Poster Kenalan membolehkan anda memaparkan kandungan unik dan diperibadikan apabila memanggil pengguna iPhone lain. awak

Fail MDF ialah format fail pangkalan data biasa dan ia merupakan salah satu fail utama pangkalan data Microsoft SQL Server. Dalam sistem pengurusan pangkalan data, fail MDF digunakan untuk menyimpan data utama pangkalan data, termasuk jadual, indeks, prosedur tersimpan, dsb. Mencipta fail MDF ialah salah satu langkah utama dalam mencipta pangkalan data Beberapa kaedah biasa akan diperkenalkan di bawah. Menggunakan SQLServerManagementStudio(SSMS)SQLServerManag

Bagaimana untuk membuat dokumen dengan Pengimbas? Anda boleh membuat dokumen baharu dalam APP Pengimbas Kebanyakan pengguna tidak tahu cara membuat dokumen Seterusnya ialah tutorial grafik tentang cara membuat dokumen dengan Pengimbas. Tutorial penggunaan Raja Pengimbas Cara membuat dokumen dengan Raja Pengimbas 1. Mula-mula buka APP Raja Pengimbas, dan kemudian klik butang [tiga titik] di sudut kanan atas halaman utama 2. Kemudian bar fungsi akan berkembang di bawah, klik perkhidmatan [Folder Baru] ;3. Kemudian tetingkap kecil akan muncul, masukkan nama dalam kotak folder baharu dan klik [OK] 4. Akhir sekali, selepas mencipta folder, masukkan folder dan kembali ke halaman My Documents untuk melihat fail yang baru dibuat.
