在laravel中找不到类路径

时间:2018-04-30 15:45:59

标签: php laravel class laravel-5 laravel-5.5

我编写了这段代码来分离“吸引力”的类定义,以便我可以在其他地方重复使用它。我将从多个页面需要它。

所以这笔交易是无论我做什么都无法找到这个部分。

这是类的定义,您还可以看到文件夹结构。

<?php 
//this Class contains all the attractions.
// It extends the place class

use DB;

class attractions{
    public $json;
    public $name='test';
    public $id;
    public $lat;
    public $lon;
    public $time;
    public $photos;

   public function __construct($id){
  }
}

尝试创建类型类

的对象$ task
<?php

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

class AttractionsController extends Controller{    
    public function show($id){
        $task=new attractions($id);
        return view ('pages.attraction',['name'=>$task->name]);
// This is the old one. Can remove after you succeed in the first.         
/*      return view('pages.attraction',[
        'name'=>$task->name
        ]);*/
    }
}

这是弹出的错误 “Symfony \ Component \ Debug \ Exception \ FatalThrowableError(E_ERROR) 没有找到“App \ MyClasses \ attractions \ attractions”类

我尝试了所有可能的路径,但这是不可接受的。

有任何帮助吗? (我知道这可能是一个非常愚蠢和微不足道的错误!)

1 个答案:

答案 0 :(得分:1)

名称空间添加到您的文件 attractions.php

<?php

namespace App\MyClasses;

class attractions {
    public $name = 'test';
    // other variable here ....


    public function example()
    {
        echo "example here";
    }

    public static function test()
    {
        echo "test here";
    }
}

现在转到您的终端并输入此命令

composer dump-autoload 这将刷新您的自动加载文件,以便您的新创建的attractions.php也将自动加载。

命令执行完毕后,您现在可以像这样使用全局类。

    use App\MyClasses\attractions;

    SomeClass {

    function __construct()
    {
        // instance call
        $attraction = new attractions();
        $attraction->example();

        // or static call

        attractions::test();
    }
 }

希望有所帮助,请告诉我。