Créez des applications Laravel efficaces : implémentez des fonctions d'API et d'affichage doubles, ainsi que des contrôleurs séparés
P粉558478150
P粉558478150 2023-08-16 10:39:36
0
1
661
<p>Je souhaite structurer mon application Laravel pour gérer efficacement les API et afficher les fonctionnalités tout en évitant la duplication dans les contrôleurs. </p> <p>Comment configurer mon application pour qu'elle dispose de deux contrôleurs distincts, l'un dédié aux opérations API et l'autre aux opérations liées aux vues ? </p> <p>De plus, quelle est la meilleure façon de gérer la logique partagée entre ces contrôleurs et comment garantir la séparation correcte des problèmes ? </p>
P粉558478150
P粉558478150

répondre à tous(1)
P粉818125805

Vous pouvez créer le même nom de classe pour l'API et la vue. En créant des contrôleurs dans différents espaces de noms, par exemple :

// 如果您尝试这样做
php artisan make:controller API/AuthController
// 它将创建控制器类以及API文件夹。
Http/Controllers/API/AuthContoller.php

Pour les problèmes partagés, veuillez créer le dossier Traits dans l'application, puis créer la classe de traits PHP.

<?php
namespace App\Traits;
use App\Models\Student;

trait StudentTrait {
    public function listAll() {
       // 获取学生
       $students = Student::all();
       return $students; 
    }
}

Vous pouvez l'utiliser dans un modèle ou un contrôleur, en utilisant le mot-clé use.

<?php
namespace App\Http\Controllers\API;
use Illuminate\Http\Request;
use App\Traits\StudentTrait;

class AuthController extends Controller
{
  use StudentTrait;

  // 做你的事情

 public function getStudents(){
    $strudents = $this->listAll();
    return new JsonResponse(['students' => $students, 'msg' => 'success']);
 }
}

Pour les problèmes indépendants et le développement structuré, vous pouvez créer des modèles de service ou de référentiel. Pour plus d'informations, veuillez cliquez.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal