Bagaimana untuk menggunakan kaedah dalam satu pengawal dalam laravel untuk memanggil kaedah dalam pengawal lain?
仅有的幸福
仅有的幸福 2017-05-16 16:47:42
0
6
785

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?

仅有的幸福
仅有的幸福

membalas semua(6)
巴扎黑

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.

$ctrl = \App::make(\App\Http\Controllers\AaaController::class);
\App::call([$ctrl, "aaa"]);

Mengapa ia begitu rumit dan bukannya hanya mencipta AaaController baharu dan memanggil kaedah secara terus? Kerana kita perlu berurusan dengan suntikan pergantungan.

PHPzhong

Buat contoh pengawal A dalam pengawal B
Adalah mungkin untuk menggunakannya dengan cara ini, tetapi saya tidak tahu sama ada ia sah atau tidak

PHPzhong

(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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan