如何在Laravel中使用Controller中的类

时间:2018-03-07 06:21:02

标签: php laravel

我在laravel项目的app目录中创建了一个类Payment.php,我试图在我的HomeController.php控制器中使用它。我使用use App\Payment;语句导入了我的付款类,但它显示以下错误

  

Symfony \ Component \ Debug \ Exception \ FatalThrowableError   (E_ERROR)Class' App \ Payment'找不到

app \ http \ controllers \ HomeController.php

<?php

namespace App\Http\Controllers;
use App\Payment;
use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index(){
        $payment = new Payment();
    }

}

app \ Payment.php

<?php
    class Payment {
        private $url;
        private $salt;
        private $params = array();

        public function __construct ( $salt, $env = 'test' )
        {
            $this->salt = $salt;
            switch ( $env ) {
            case 'test' :
                $this->url="https://testpay.easebuzz.in/";
                break;
            case 'prod' :
                $this->url = 'https://pay.easebuzz.in/';
                break;
            default :
                $this->url="https://testpay.easebuzz.in/";
            }
        }
    }

2 个答案:

答案 0 :(得分:2)

首先尝试学习使用命名空间

命名空间和使用不是Laravel功能。这些是Core PHP的功能的一部分,可以像任何其他结构一样使用。 名称空间基本上将您的函数,类和常量分组到一个特定的名称下面,我们称之为名称空间。

namespace myself;
function hello(){
  echo 'hai';
}

现在,如果您包含由上述代码组成的php文件,您现在可以通过以下方式调用函数hello():

<?php
require 'myself.php';
myself\hello();

答案 1 :(得分:1)

您必须为该类命名。当你要添加一个必须由其他类中的命名空间导入的类时,你应该在类声明文件中指定命名空间。

App \ Payment.php

<?php
    namespace App;

    class Payment {
        private $url;
        private $salt;
        private $params = array();

        ...
    }