首页 > 解决方案 > 如何创建一个可以在 Laravel 7 中的所有其他控制器中调用的方法

问题描述

问候伙计们,我在弄清楚如何在基本控制器中创建此方法时遇到了挑战,以便我在那里对其进行初始化并在我希望的所有其他控制器中调用它。我想在基本控制器中创建它,然后在其他控制器中调用它

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

图片 1.这是我在基本控制器中所做的

在此处输入图像描述

图 2. 这是我试图用它来调用它的成员函数的地方

在此处输入图像描述

图 3. 我得到的错误是 在此处输入图像描述

标签: phplaravelconstructorcontroller

解决方案


<?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();
    }
}

推荐阅读