Heim  >  Fragen und Antworten  >  Hauptteil

Erstellen Sie effiziente Laravel-Anwendungen: Implementieren Sie duale API- und Ansichtsfunktionen sowie separate Controller

<p>Ich möchte meine Laravel-Anwendung so strukturieren, dass sie APIs und Anzeigefunktionen effizient verarbeitet und gleichzeitig Duplikate in Controllern vermeidet. </p> <p>Wie richte ich meine Anwendung so ein, dass sie über zwei separate Controller verfügt, einen für API-Vorgänge und einen anderen für ansichtsbezogene Vorgänge? </p> <p>Wie gehe ich außerdem am besten mit der gemeinsamen Logik dieser Controller um und wie stelle ich die korrekte Trennung der Belange sicher? </p>
P粉558478150P粉558478150452 Tage vor618

Antworte allen(1)Ich werde antworten

  • P粉818125805

    P粉8181258052023-08-17 00:53:13

    您可以创建相同的类名,既可以用于API,也可以用于视图。通过在不同的命名空间中创建控制器,例如:

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

    对于共享的问题,请在app中创建Traits文件夹,然后创建PHP trait类。

    <?php
    namespace App\Traits;
    use App\Models\Student;
    
    trait StudentTrait {
        public function listAll() {
           // 获取学生
           $students = Student::all();
           return $students; 
        }
    }

    您可以在模型或控制器中使用它,使用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']);
     }
    }

    对于独立的问题和结构化开发,您可以创建服务或存储库模式。 有关更多信息,请点击

    Antwort
    0
  • StornierenAntwort