我在 Laravel 5 的 App/中创建了一些自定义类,如下所示:
应用程序/数据库.php
应用程序/表.php
应用程序/联系人表.php
在我的 ContactsTable 类中,我扩展了 Table 类
use Table;
/**
* Description of ContactsTable
*
* @author john
*/
class ContactsTable extends Table {
我在 config/app.php 中为 Table (App\Table) 和 ContactsTable (App\ContactsTable) 设置了别名。但是在加载页面时,它给了我一个错误:
“具有非复合名称‘表’的 use 语句无效”
我尝试了以不同方式导入类的多种组合,但没有成功。
有什么建议吗?
最佳答案
这是因为您当前与 Table
位于相同的命名空间中。类(class)。由于您还将其别名为 Table
,大概不知道是什么Table
你说的是别名Table
或 Table
当前驻留在您当前的命名空间中,这两者恰好也是同一件事。
删除别名并删除 use
陈述。由于这些类位于同一个命名空间中,因此无需执行其中任何一项操作。
保留无锯齿和 App
也可能是一个很好的主意。命名空间,因为它们都是非常常见的名称,将来可能会给您带来更多麻烦。
我只是尝试重新创建它,这里一切正常。不过可以肯定的是,这是我使用的代码......
app\ContactsTable.php
namespace App;
class ContactsTable extends Table {
}
应用\Table.php
namespace App;
class Table {
}
路由文件
Route::get('test', function()
{
$table = new \App\ContactsTable();
echo get_class($table);
});
并前往
myapp.local/test
,输出 App\ContactsTable
关于php - Laravel 类命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30265826/