PHP Laravel 5: признак не найден

#php #laravel

#php #laravel

Вопрос:

У меня возникла проблема с использованием признаков в среде laravel.

Я пытаюсь получить доступ к признак с помощью модели в laravel и получаю сообщение об ошибке «признак не найден». Ниже приведена моя черта, она хранится в папке app Traits и называется testTrait.php

 <?php 

namespace AppTraits;


trait test{
    public function printTest()
    {
        $test = 'test';
        return $test;
    }

}
  

Это модель, которую я использую, чтобы попытаться получить к ней доступ, она хранится в папке app Models и в остальном отлично работает без попыток использования черты

 <?php

namespace AppModels;


use IlluminateDatabaseEloquentModel;
use AppTraitstestTrait;

class Home extends Model
{
    use testTrait;


    public function someMethod()
    {
        /*
    something here
    */
    }
}
  

Я предполагаю, что это может быть как-то связано с пространством имен и тем фактом, что я должен назначить пространство имен App Models, но даже если я изменю или удалю это, это не сработает.

Ответ №1:

У вашего файла может быть имя testTrait.php , но вы вызвали признак в этом файле по-старому test .

 trait test { ... }
  

Переименуйте его в testTrait в testTrait.php файле.

 trait testTrait { ... }
  

Ответ №2:

Вы определили свой признак как trait test{ но в вашей модели вы используете неправильное имя признака use testTrait;

измените его на

 use test;