建構高效的Laravel應用:實現雙API和視圖功能,並進行控制器分離
P粉558478150
P粉558478150 2023-08-16 10:39:36
0
1
663
<p>我希望將我的Laravel應用程式結構化,以便有效處理API和視圖功能,同時避免在控制器中重複。 </p> <p>我該如何設定我的應用程式以擁有兩個獨立的控制器,一個專門用於API操作,另一個用於與視圖相關的操作? </p> <p>此外,處理這些控制器之間的共享邏輯的最佳方法是什麼,我如何確保關注點的正確分離? </p>
P粉558478150
P粉558478150

全部回覆(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']);
 }
}

對於獨立的問題和結構化開發,您可以建立服務或儲存庫模式。 有關更多信息,請點擊

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板