Erstellen Sie effiziente Laravel-Anwendungen: Implementieren Sie duale API- und Ansichtsfunktionen sowie separate Controller
P粉558478150
P粉558478150 2023-08-16 10:39:36
0
1
660
<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粉558478150
P粉558478150

Antworte allen(1)
P粉818125805

您可以创建相同的类名,既可以用于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']);
 }
}

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage