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

时间:2015-02-20 07:10:05

标签: php laravel-5

所以我有文件夹app/Models/Blog,其中有两个文件:Posts.phpTags.php。这两个文件在同一个App\Models\Blog命名空间中,但要使用多对多关系,我需要调用$this->belongsToMany('App\Models\Blog\Tags');,否则我得到一个异常,没有找到标签类...是否有可能以某种方式摆脱App\Models\Blog\命名空间并仅调用Tags

1 个答案:

答案 0 :(得分:1)

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

我认为这是一个坏主意,因为它会污染根命名空间。例如,您最终会遇到类命名冲突,因为您尝试将App \ Models \ Blog \ Tags和AnotherApp \ Models \ PaymentGateway \ Tags别名为同一别名。这是命名空间旨在解决的问题,但是根类名称的别名类会使问题重新出现。