如何在控制器 Laravel 中导入自定义类?

Dev*_*Dev 6 laravel laravel-5.2

我Library在 Laravel 的根目录中创建了一个新目录。

在里面我把文件放在类中:

class My { // }

因此,在控制器 Laravel 中,我尝试访问此类:

App\Library\My
Run Code Online (Sandbox Code Playgroud)

但是 Laravel 并没有确定这条路径。

这是我的代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

use View;

use App\Library\My;

class HomeController extends Controller
{
 //
}
Run Code Online (Sandbox Code Playgroud)

Fel*_*hes 6

基于此处帖子的完整且功能示例:

1-文件夹和文件-在下面创建一个文件夹app/,在本例中我们将创建一个名为 的文件夹Library。

我们还将在文件夹内创建一个以您的类名称命名的文件,在这里我们将创建一个名为My.

所以我们会有app/Library/My.php

2 -类和方法- 现在,为了测试,在类内创建一个名为的静态方法myMethod

<?php

namespace App\Library;

class My
{
    public static function myMethod() 
    {
        return 'it\'s work!';
    }
}
Run Code Online (Sandbox Code Playgroud)

3 -控制器- 现在在控制器的开头,我们将使用以下命令声明类的命名空间use:

<?php

namespace App\Http\Controllers;
use App\Library\My;

//rest of the controller code
Run Code Online (Sandbox Code Playgroud)

最后,要创建该类的实例My,在Controller中new必须使用一条语句:

//rest of the controller code

public function index()
{ 
    $whatever = new My;
    return $whatever::myMethod();
}
Run Code Online (Sandbox Code Playgroud)


小智 4

如上所述,确保将其放置在 App 目录中并确保其命名空间正确,例如

<?php
  $fOne = new \App\library\functions;
  $isOk = ($fOne->isOk());
?>
Run Code Online (Sandbox Code Playgroud)