好的,我现在挣扎了2个多小时......
它必定是“天哪,这是显而易见的”时间,你太累了,你看不到解决方案......
我想扩展eloquentmodel以包含特征。
所以我的班级看起来像
<?php
class Note extends Eloquent{
use \Admin\GreatTrait;
...
}
我创建了app/Traits/Admin
目录结构,并在那里创建了名为GreatTrait.php
的文件,其中包含以下内容:
<?php namespace Admin;
trait GreatTrait{
...
}
和cource我编辑了start/global.php
以将dir包含在ClassLoader中,如此
ClassLoader::addDirectories(array(
app_path().'/commands',
... more ...
app_path().'/traits',
app_path().'/traits/Admin',
));
我收到以下错误...
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Trait 'Admin\GreatTrait' not found
有什么建议吗?
答案 0 :(得分:3)
按照您的代码,我让它适用于下一个更改:
包含在composer.json中:
"autoload": {
"classmap": [
"app/traits"
]
}
包括在模型中的类声明后(只是特征名称,没有 目录):
php
class Note extends Eloquent {
use \GreatTrait;
...
}
?>
答案 1 :(得分:1)
我在global.php中遇到了自动加载的问题,你可以使用copmposer.json做同样的事情:
在 composer.json
中添加自动加载数组的路径"autoload": {
"classmap": [
"app/traits"
]
},
运行composer dump-autoload
在 app / traits 路径中,您应该拥有管理文件夹 app / traits / admin ,并设置名称空间管理员。
<?php
namespace Admin
class GreatTrait { ... }
然后你可以使用
<?php
use \Admin\GreatTrait;
class Note extends Eloquent{
...
}