Путь класса не найден в laravel - PullRequest
0 голосов
/ 30 апреля 2018

Я написал этот код, чтобы разделить определение класса «аттракционы», чтобы я мог использовать его в другом месте. Мне понадобится это с нескольких страниц.

Так что дело в том, что он не может найти часть, что бы я ни делал.

Это определение класса, и вы также можете увидеть структуру папок.

<?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 типа class

<?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) Класс 'Приложение \ MyClasses \ достопримечательности \ достопримечательности' не найден "

Я перепробовал все возможные пути, но это было бы неприемлемо.

Любая помощь? (Я знаю, что это может быть очень глупой и тривиальной ошибкой!)

1 Ответ

0 голосов
/ 30 апреля 2018

Добавить пространство имен в ваш файл 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();
    }
 }

Надеюсь, это поможет, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...