我在Laravel的根目录中创建了一个新目录Library
。
在里面我把文件放在上面:
class My {
//
}
所以,在控制器Laravel中,我尝试访问这个类:
App\Library\My
但是Laravel并不确定这条道路。
这是我的代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use View;
use App\Library\My;
class HomeController extends Controller
{
//
}
答案 0 :(得分:2)
您应该在Library
文件夹
app
文件夹
namespace App\Library\My
app
文件夹使用psr-4
在您的控制器中
use App\Library\My as My
这对我有用。希望这个答案很有帮助
答案 1 :(得分:2)
如上所述,请确保将其放在App目录中并确保其正确命名空间,例如
<?php
$fOne = new \App\library\functions;
$isOk = ($fOne->isOk());
?>
答案 2 :(得分:2)
您必须正确命名每个班级。
因此,您可以使用use
关键字导入您的课程,如此
use App\Library\My;
....
$my = new My();
或者,如果您的班级名称有冲突,那么您可以使用as
关键字在导入时为别名设置别名
use App\Library\My as MySecond;
....
$my = new MySecond();
如果您想在方法中直接访问您的类,那么您可以像这样访问它。
$my = new \App\Library\My();
注意:前导\
表示App已在全局范围内声明。
答案 3 :(得分:1)
基于此处帖子的完整且实用的示例:
1-文件夹和文件-在app/
下创建一个文件夹,在本示例中,我们将创建一个名为Library
的文件夹。
我们还将在文件夹中创建一个带有您的班级名称的文件,在这里我们将创建一个名为My
的班级。
所以我们将有app/Library/My.php
2-类和方法-现在,为了测试,在类内部创建一个名为myMethod
<?php
namespace App\Library;
class My
{
public static function myMethod()
{
return 'it\'s work!';
}
}
3-控制器-现在在控制器的开头,我们将使用use
声明您的类的名称空间:
<?php
namespace App\Http\Controllers;
use App\Library\My;
//rest of the controller code
最后,要在Controller中创建My
类的实例,必须使用new
语句:
//rest of the controller code
public function index()
{
$whatever = new My;
return $whatever::myMethod();
}