php - Laravel 类命名空间

标签 php class laravel namespaces

我在 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你说的是别名TableTable当前驻留在您当前的命名空间中,这两者恰好也是同一件事。

删除别名并删除 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/

相关文章:

php - 提交到另一个页面后通过id从数据库获取数据

javascript - JQuery GET 检索不需要的 HTML

php - PHP类函数中的 fatal error "Cannot access empty property"在哪里?

laravel - 连接不安全 - MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT

php - 如何对 Laravel Controller 进行简单测试?

php - Laravel 8 中的自定义 DatabaseSessionHandler

php - mysql & php 自动递增id并插入数据

php - 在数据库中的同一个表中使用连接

c#类强制至少一种关系

java - 是否有 Clojure/Java 类和协议(protocol)的简单引用?