Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan Laravel untuk membangunkan platform soal jawab dalam talian

Cara menggunakan Laravel untuk membangunkan platform soal jawab dalam talian

WBOY
WBOYasal
2023-11-02 11:09:19692semak imbas

Cara menggunakan Laravel untuk membangunkan platform soal jawab dalam talian

Cara menggunakan Laravel untuk membangunkan platform soal jawab dalam talian

Pengenalan:
Dalam beberapa tahun kebelakangan ini, dengan populariti Internet dan minat orang ramai terhadap pengetahuan Permintaan untuk komunikasi terus meningkat, dan platform soal jawab dalam talian telah menjadi aplikasi Internet yang popular. Artikel ini akan menggunakan rangka kerja Laravel untuk membangunkan platform soal jawab dalam talian yang mudah dan memberikan contoh kod khusus.

1. Persediaan persekitaran
Sebelum bermula, kita perlu menyediakan persekitaran pembangunan. Pastikan anda telah memasang PHP dan Komposer, dan Laravel dikonfigurasikan pada komputer anda.

2. Buat projek
Mula-mula, buka alat baris arahan dan masukkan folder tempat anda ingin mencipta projek. Kemudian laksanakan arahan berikut untuk mencipta projek Laravel baharu:

composer create-project --prefer-dist laravel/laravel qa-platform

Arahan ini akan memuat turun versi terkini Laravel dan mencipta folder bernama qa-platform sebagai direktori akar projek kami.

3. Konfigurasi pangkalan data
Seterusnya, kita perlu mengkonfigurasi pangkalan data yang digunakan oleh Laravel. Buka fail .env dalam direktori akar projek dan cari baris kod berikut di dalamnya:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

Ubah suai item konfigurasi ini agar sepadan dengan tetapan pangkalan data anda. Selepas menyimpan fail, jalankan arahan berikut untuk menjana fail pemindahan pangkalan data:

php artisan migrate

Arahan ini akan mencipta jadual data berkaitan pengesahan pengguna lalai Laravel.

4 Buat model soal jawab
Dalam Laravel, kami menggunakan model untuk mengendalikan pangkalan data. Kita perlu mencipta model soalan dan model jawapan. Buka alat baris arahan, tukar ke direktori akar projek, dan laksanakan arahan berikut:

php artisan make:model Question -m
php artisan make:model Answer -m

Selepas pelaksanaan, anda akan melihat dua fail model yang baru dibuat dalam folder aplikasi.

Seterusnya, buka fail pemindahan pangkalan data dan tambahkan kod berikut pada fail create_questions_table.php:

public function up()
{
    Schema::create('questions', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->longText('description');
        $table->timestamps();
    });
}

Kemudian, ubah suai fail create_answers_table.php dan tambah kod berikut: #🎜 🎜#

public function up()
{
    Schema::create('answers', function (Blueprint $table) {
        $table->id();
        $table->unsignedBigInteger('question_id');
        $table->longText('content');
        $table->timestamps();
        
        $table->foreign('question_id')->references('id')->on('questions');
    });
}

Seterusnya, jalankan arahan berikut untuk melaksanakan pemindahan pangkalan data:

php artisan migrate

Selepas pemindahan pangkalan data selesai, anda akan melihat dua jadual data, soalan dan jawapan, dalam pangkalan data .

5 Menulis pengawal dan pandangan

Kita perlu mencipta pengawal untuk mengendalikan logik soalan dan jawapan, dan menjana pandangan yang sepadan untuk memaparkan data.

Pertama, buka alat baris arahan, tukar ke direktori akar projek, dan laksanakan arahan berikut untuk mencipta pengawal:

php artisan make:controller QuestionController --resource
php artisan make:controller AnswerController --resource

Selepas melaksanakan arahan di atas, anda akan berada dalam app/Http Dua fail pengawal baharu dilihat dalam folder /Controllers. Buka fail QuestionController.php dan tambah kod berikut:

public function index()
{
    $questions = Question::all();
    return view('questions.index', compact('questions'));
}

public function create()
{
    return view('questions.create');
}

public function store(Request $request)
{
    $question = Question::create([
        'title' => $request->input('title'),
        'description' => $request->input('description')
    ]);

    return redirect()->route('questions.index');
}

Kemudian, buka fail AnswerController.php dan tambah kod berikut:

public function store(Question $question, Request $request)
{
    $answer = Answer::create([
        'question_id' => $question->id,
        'content' => $request->input('content')
    ]);

    return redirect()->route('questions.show', $question);
}

Seterusnya, buat paparan yang sepadan fail . Dalam folder sumber/pandangan, cipta folder soalan dan cipta tiga fail paparan index.blade.php, create.blade.php dan show.blade.php di dalamnya. Kemudian tambahkan kod HTML yang sepadan pada fail ini untuk memaparkan data soalan dan jawapan.

6. Konfigurasi penghalaan

Langkah terakhir ialah mengkonfigurasi penghalaan supaya kami boleh mengakses platform Soal Jawab kami melalui URL.

Buka fail route/web.php dan tambah kod berikut:

Route::resource('questions', 'QuestionController');
Route::post('questions/{question}/answers', 'AnswerController@store')->name('answers.store');

Kemudian, simpan fail tersebut.

7. Mulakan pelayan

Sekarang, kami boleh memulakan pelayan pembangunan Laravel dan mengakses platform Soal Jawab kami dalam penyemak imbas.

Dalam alat baris arahan, laksanakan arahan berikut untuk memulakan pelayan:

php artisan serve

Kemudian masukkan http://localhost:8000/questions dalam pelayar untuk mengakses Soal Jawab platform Laman Utama.

Kesimpulan:

Melalui langkah di atas, kami telah berjaya membangunkan platform soal jawab dalam talian yang mudah menggunakan rangka kerja Laravel, dan mempelajari cara mencipta model, pengawal, pandangan dan konfigurasi penghalaan. Saya harap artikel ini akan membantu anda dalam mempelajari pembangunan aplikasi Laravel.

Atas ialah kandungan terperinci Cara menggunakan Laravel untuk membangunkan platform soal jawab dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn