我在App / laravel 5中创建了一些自定义类:
App / Database.php
App / Table.php
App / ContactsTable.php
在我的ContactsTable类中,我扩展了Table类
use Table;
/**
* Description of ContactsTable
*
* @author john
*/
class ContactsTable extends Table {
我在config(app \ Table)和ContactsTable(App \ ContactsTable)的config / app.php中设置了别名。但是在加载页面时它会给我一个错误:
"使用非复合名称的使用声明'表'没有效果"
我尝试过以不同方式导入课程的多种组合,没有运气。
有什么建议吗?
答案 0 :(得分:1)
这是因为您当前与Table
类位于同一名称空间中。由于您还将其别名为Table
,因此它可能不知道您正在谈论的Table
,当前为Table
或Table
的别名驻留在您当前的命名空间中,这两者恰好也是一样的。
删除别名并删除use
语句。由于这些类在同一名称空间中,因此无需执行其中任何一项。
在App
名称空间中保留两个非别名的名称也是一个非常好的主意,因为它们都是非常常见的名称,并且最终可能会给您带来更多麻烦。
我只是想重新创建这个,一切都运行正常。不过要确定一下,这是我用的代码......
namespace App;
class ContactsTable extends Table {
}
namespace App;
class Table {
}
Route::get('test', function()
{
$table = new \App\ContactsTable();
echo get_class($table);
});
转到myapp.local/test
,输出App\ContactsTable