Apakah yang perlu saya lakukan jika kaedah dalam satu pengawal dalam laravel ingin memanggil kaedah dalam pengawal lain?
Contohnya:
AaaController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AaaController extends Controller
{
public function aaa()
{
//...
}
}
BbbController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class BbbController extends Controller
{
public function bbb()
{
//这里要调用aaa(),应该怎么做?
}
}
Bagaimanakah kaedah bbb() dalam BbbController harus memanggil kaedah aaa() dalam AaaController?
Ini menunjukkan bahawa anda belum mengekstrak logik dalam kaedah aaa, orm boleh diletakkan dalam Repositori, dan operasi logik boleh diletakkan dalam perkhidmatan
Ini biasanya tidak disyorkan.
Mengapa ia begitu rumit dan bukannya hanya mencipta AaaController baharu dan memanggil kaedah secara terus? Kerana kita perlu berurusan dengan suntikan pergantungan.
Buat contoh pengawal A dalam pengawal B
Adalah mungkin untuk menggunakannya dengan cara ini, tetapi saya tidak tahu sama ada ia sah atau tidak
(AaaController baharu ())->aaa();
Anda boleh membina BaseController, dan dua controller yang lain bersama-sama mewarisi pengawal ini Beberapa kaedah awam boleh diletakkan dalam BaseController, atau menambah fail pembantu
Jika anda mesti melakukan ini, anda boleh menentukan kaedah yang dipanggil sebagai kaedah statik. Kemudian nama kelas dipanggil terus. Tetapi saya tidak mengesyorkan melakukan ini