Comment utiliser une méthode dans un contrôleur dans Laravel pour appeler une méthode dans un autre contrôleur ?
仅有的幸福
仅有的幸福 2017-05-16 16:47:42
0
6
801

Que dois-je faire si une méthode dans un contrôleur dans Laravel veut appeler une méthode dans un autre contrôleur ?

Par exemple :
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(),应该怎么做?
    }
}

Comment la méthode bbb() dans BbbController doit-elle appeler la méthode aaa() dans AaaController ?

仅有的幸福
仅有的幸福

répondre à tous(6)
巴扎黑

Cela montre que vous n'avez pas extrait la logique dans la méthode aaa, orm peut être placé dans le référentiel et les opérations logiques peuvent être placées en service

洪涛

Ceci n'est généralement pas recommandé.

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

Pourquoi est-ce si compliqué au lieu de simplement créer un nouveau AaaController et d'appeler directement la méthode ? Parce que nous devons faire face à l’injection de dépendances.

PHPzhong

Créer une instance du contrôleur A dans le contrôleur B
Il est possible de l'utiliser de cette façon, mais je ne sais pas si c'est légal ou non

PHPzhong

(nouveau AaaController ())->aaa();

迷茫

Vous pouvez créer un BaseController, et les deux autres contrôleurs héritent conjointement de ce contrôleur. Certaines méthodes publiques peuvent être placées dans le BaseController, ou ajouter un fichier d'assistance

.
大家讲道理

Si vous devez faire cela, vous pouvez définir la méthode appelée comme méthode statique. Ensuite, le nom de la classe est appelé directement. Mais je ne recommande pas de faire ça

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal