Как создать метод, который можно вызывать во всех других контроллерах в Laravel 7 - PullRequest
0 голосов
/ 03 мая 2020

Приветствую, ребята, у меня возникла проблема с выяснением, как сделать этот метод в базовом контроллере, чтобы я инициализировал его там и вызвал его во всех других контроллерах, которые я sh. Я хочу создать это в базовом контроллере, а затем вызвать его в других контроллерах

    $paynow = new Paynow(
        '9644',
        '7e3bebb4-6dbf-4f8f-9e10-aceafd02c8db',
        'Return_url',
        'Result_url'
    );

Изображения 1. Это то, что я сделал в базовом контроллере

enter image description here

Изображение 2. Здесь я пытаюсь использовать его для вызова функций-членов

enter image description here

Изображение 3. Есть ошибка, которую я получаю enter image description here

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

если я хорошо вас понимаю,

Возможно, лучший способ - создать новый контроллер, расширяющий BasController:

class Controller extends BaseController
{

    public function payNow()
    {
        return new Paynow(
            '9644',
            '7e3bebb4-6dbf-4f8f-9e10-aceafd02c8db',
            'Return_url',
            'Result_url'
        );
    }
}

А затем в другом вашем контроллере вы можете расширить свой новый контроллер:

class UserController extends Controller
{
    //For example
    public function show($id, Request $request)
    {
        $payNow = $this->payNow();
        $payment = $payNow->createPayment($currentOrder, $request->get('email'));

        return response()->json("done");
    }

}

Paynow будет вызываться на каждом контроллере, который расширяет этот контроллер.

0 голосов
/ 03 мая 2020
<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    protected function callPayNow()
    {
        return new Paynow(
            '9644',
            '7e3bebb4-6dbf-4f8f-9e10-aceafd02c8db',
            'Return_url',
            'Result_url'
        );
    }
}

В вашем AnyController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AnyController extends Controller
{
    public function anyMethod()
    {
        $this->callPayNow();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...