Je suis nouveau à Laravel. J'ai des fonctions dans Merci. P> P> PaymentController Code>. Je veux appeler ces fonctions à partir de smartpayscontroller code>. Voici la fonction disponible dans PaymentController code>. Aidez-moi à appeler cette fonction en séjournant dans SmartPaySController code>.
4 Réponses :
Je vous recommande de ne pas appeler des fonctions d'un contrôleur à un autre. Faire des assistants, des ressources ou de la même fonctionnalité d'une autre manière
Ne jamais utiliser les contrôleurs comme objet p> blockQuote>
Mais si vous voulez le faire quand même, vous pouvez utiliser: p> somecontroller.php strong>
xxx pré> fort> votrecontroller.php forte > use SomeController; ... public function getPaymentFailed(Request $request, $paymentId) { $controller_data = (new SomeController)->someFunction($request); $transactionData = $this->paymentRepo->find($paymentId); if($transactionData) { $data['quote'] = $this->quoteRepo->getQuoteById($transactionData->quote_id); $data['metaTitle'] = 'Payment failed'; $data['returnMessage'] = $transactionData->return_message; return view('payment::payment.quote_payment_failed', $data); } }
Modification: à: p> Cela le rendra statique disponible sur votre SmartPaySController en faisant: p> < Pré> xxx pré> p>
Sans modification Fonction publique getPaymentFaysedFailed ($ payais) b> comme Fonction statique publique getPaymentFailed ($ payais) b>, je ne peux pas appeler? Parce qu'il s'agit d'un projet en direct et de fonctions déjà écrites. Une autre chose est que, si je le change en tant que statique, cela répertoriera-t-il aux autres?
Vous devez faire la fonction statique ou prolonger le paiementContrôleur. Sinon, vous ne pouvez pas appeler la fonction.
Je pense que votre site Web fonctionnera toujours lorsque vous déclarez votre fonction statique. Mais je le testerais toujours.
class ControlelrName extends Controller {
use TraitName;
}
Totalement d'accord que l'utilisation de la méthode de contrôleur comme logique commerciale est un modèle anti-modèle en MVC :)
Si ce n'est que la seule méthode et il ne justifie pas la création d'une classe de "service", une possibilité serait de créer un trait que vos contrôleurs utilisent les deux contrôleurs.