没找到Laravel 5.5 Trait

时间:2018-01-04 12:47:53

标签: php laravel traits

我无法绕过这个,因为我在另一个项目上有这个并且工作得很好。 它目前正在给我这个错误

  

Symfony \ Component \ Debug \ Exception \ FatalErrorException(E_UNKNOWN)   Trait' App \ Traits \ ResponseTrait'找不到

UserRepository工作正常,特性没有。我尝试重命名特征,将其移动到存储库文件夹,将其修改为777,我不知道可能出现什么问题。

认识我的HomeController,laravel的默认设置:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Repositories\UserRepository as User;
use App\Traits\ResponseTrait;

class HomeController extends Controller
{
  use ResponseTrait;

  private $user;

  /**
  * Create a new controller instance.
  *
  * @return void
  */
  public function __construct(User $user)
  {
    $this->user = $user;
    $this->middleware('auth');
  }

  /**
  * Show the application dashboard.
  *
  * @return \Illuminate\Http\Response
  */
  public function index()
  {
    //dd($this->user->all()->toArray());
    //You can ignore the self:: part, as it doesn't reach this far.
    self::setData($this->user->all()->toArray());
    return "test";
    return view('home');
  }
}

特质:

<?

namespace App\Traits;

trait ResponseTrait {
  public function setData($array) {

  }
}

该特质的路径是/app/Traits/ResponseTrait.php

在我的composer.json,我已经通过App指令获得了PSR-4自动加载。

"psr-4": {
   "App\\": "app/"
}

Edit1:我尝试过composer dump-autoload,问题仍然存在

1 个答案:

答案 0 :(得分:7)

请勿使用<?,始终使用<?php

需要在php.ini中启用短开标签,因为它们与其他语言冲突,所以不受广泛支持。