Heim > Artikel > PHP-Framework > So entwickeln Sie mit Laravel eine Online-Frage- und Antwortplattform
So entwickeln Sie mit Laravel eine Online-Frage- und Antwortplattform
Einführung:
In den letzten Jahren hat sich die Online-Frage- und Antwortplattform mit der Popularität des Internets und der steigenden Nachfrage der Menschen nach Wissensaustausch zu einem beliebten Internet entwickelt Anwendung. In diesem Artikel wird das Laravel-Framework verwendet, um eine einfache Online-Frage- und Antwortplattform zu entwickeln und spezifische Codebeispiele zu geben.
1. Umgebungsvorbereitung
Bevor wir beginnen, müssen wir die Entwicklungsumgebung vorbereiten. Stellen Sie sicher, dass PHP und Composer installiert und Laravel auf Ihrem Computer konfiguriert sind.
2. Erstellen Sie ein Projekt
Öffnen Sie zunächst das Befehlszeilentool und geben Sie den Ordner ein, in dem Sie das Projekt erstellen möchten. Führen Sie dann den folgenden Befehl aus, um ein neues Laravel-Projekt zu erstellen:
composer create-project --prefer-dist laravel/laravel qa-platform
Dieser Befehl lädt die neueste Version von Laravel herunter und erstellt einen Ordner namens qa-platform als unser Projektstammverzeichnis.
3. Datenbankkonfiguration
Als nächstes müssen wir die von Laravel verwendete Datenbank konfigurieren. Öffnen Sie die .env-Datei im Stammverzeichnis des Projekts und finden Sie darin die folgenden Codezeilen:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret
Ändern Sie diese Konfigurationselemente entsprechend Ihren Datenbankeinstellungen. Führen Sie nach dem Speichern der Datei den folgenden Befehl aus, um die Datenbankmigrationsdatei zu generieren:
php artisan migrate
Dieser Befehl erstellt die standardmäßige Datentabelle für die Benutzerauthentifizierung von Laravel.
4. Frage- und Antwortmodelle erstellen
In Laravel verwenden wir Modelle, um die Datenbank zu betreiben. Wir müssen ein Fragemodell und ein Antwortmodell erstellen. Öffnen Sie das Befehlszeilentool, wechseln Sie in das Stammverzeichnis des Projekts und führen Sie den folgenden Befehl aus:
php artisan make:model Question -m php artisan make:model Answer -m
Nach der Ausführung sehen Sie zwei neu erstellte Modelldateien im App-Ordner.
Öffnen Sie als Nächstes die Datenbankmigrationsdatei und fügen Sie den folgenden Code zur Datei „create_questions_table.php“ hinzu:
public function up() { Schema::create('questions', function (Blueprint $table) { $table->id(); $table->string('title'); $table->longText('description'); $table->timestamps(); }); }
Ändern Sie dann die Datei „create_answers_table.php“ und fügen Sie den folgenden Code hinzu:
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'); }); }
Führen Sie als Nächstes den folgenden Befehl aus, um die Datenbank auszuführen Migration:
php artisan migrate
Nach Abschluss der Datenbankmigration werden in der Datenbank zwei Datentabellen, Fragen und Antworten, angezeigt.
5. Controller und Ansichten schreiben
Wir müssen einen Controller erstellen, um die Logik von Fragen und Antworten zu verwalten und entsprechende Ansichten zum Anzeigen von Daten zu generieren.
Öffnen Sie zunächst das Befehlszeilentool, wechseln Sie in das Stammverzeichnis des Projekts und führen Sie den folgenden Befehl aus, um den Controller zu erstellen:
php artisan make:controller QuestionController --resource php artisan make:controller AnswerController --resource
Nachdem Sie den obigen Befehl ausgeführt haben, sehen Sie zwei neue Steuerelemente im Ordner app/Http/Controllers Serverdatei. Öffnen Sie die Datei QuestionController.php und fügen Sie den folgenden Code hinzu:
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'); }
Öffnen Sie dann die Datei AnswerController.php und fügen Sie den folgenden Code hinzu:
public function store(Question $question, Request $request) { $answer = Answer::create([ 'question_id' => $question->id, 'content' => $request->input('content') ]); return redirect()->route('questions.show', $question); }
Als nächstes erstellen Sie die entsprechende Ansichtsdatei. Erstellen Sie im Ordner resources/views den Ordner questions und erstellen Sie darin die drei Ansichtsdateien index.blade.php, create.blade.php und show.blade.php. Anschließend fügen Sie diesen Dateien den entsprechenden HTML-Code hinzu, um die Daten der Fragen und Antworten anzuzeigen.
6. Routing konfigurieren
Der letzte Schritt besteht darin, das Routing zu konfigurieren, damit wir über die URL auf unsere Q&A-Plattform zugreifen können.
Öffnen Sie die Datei „routes/web.php“ und fügen Sie den folgenden Code hinzu:
Route::resource('questions', 'QuestionController'); Route::post('questions/{question}/answers', 'AnswerController@store')->name('answers.store');
Dann speichern Sie die Datei.
7. Starten Sie den Server
Jetzt können wir den Laravel-Entwicklungsserver starten und im Browser auf unsere Q&A-Plattform zugreifen.
Führen Sie im Befehlszeilentool den folgenden Befehl aus, um den Server zu starten:
php artisan serve
Geben Sie dann http://localhost:8000/questions in den Browser ein, um auf die Homepage der Q&A-Plattform zuzugreifen.
Fazit:
Durch die oben genannten Schritte haben wir erfolgreich eine einfache Online-Frage- und Antwortplattform mithilfe des Laravel-Frameworks entwickelt und gelernt, wie man Modelle, Controller, Ansichten und Konfigurationsrouten erstellt. Ich hoffe, dass dieser Artikel Ihnen beim Erlernen der Laravel-Anwendungsentwicklung hilfreich sein wird.
Das obige ist der detaillierte Inhalt vonSo entwickeln Sie mit Laravel eine Online-Frage- und Antwortplattform. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!