如何在L5中处理Eloquent关系中的命名空间


How to deal with namespaces in Eloquent relations in L5?

所以我有文件夹app/Models/Blog,其中有两个文件:Posts.phpTags.php。这两个文件在同一个App'Models'Blog命名空间中,但要使用多对多关系,我需要像$this->belongsToMany('App'Models'Blog'Tags');一样调用,否则我会得到一个异常,即找不到Tags类。。。有可能以某种方式去掉App'Models'Blog'命名空间,只调用Tags吗?

这是可能的,但我认为这是个坏主意。你可以在app/Config/app.php中为你的类添加别名,这样你就可以像laravel类一样将app''Models''Blog''Tags别名为Tags。

我认为这是个坏主意,因为它会污染根命名空间。例如,由于您试图将App''Models''Blog''Tags和AnotherApp''Modeles''PaymentGateway''Tags别名为同一别名,因此最终会出现类命名冲突。这是名称空间设计用来解决的问题,但将类别名到根名称空间会使问题再次出现。