2013-04-20 89 views
17

在Laravel 4中我想使用代表来自我的数据库的Event的模型。因此,在app/models我有我的Event模型,扩展雄辩。如何在Laravel中命名空间模型以免与现有类冲突?

但是,Laravel 4已经有一个Event类,用于管理应用程序生命周期内的事件。

我想知道的是,我如何正确命名空间我的Event模型,并以不会与现有的Event类冲突的方式访问它。

+0

与在其他地方使用命名空间的方式相同吗?只需要注册它。 – itachi 2013-04-20 03:57:38

+0

这是否意味着我根据它所在的目录命名空间?例如'namespace Model',然后使用'Model \ Event'访问它? – Dwight 2013-04-20 03:59:30

+0

是的。该文档在模型部分中有一个示例。 – itachi 2013-04-20 04:02:40

回答

20

您只需要像往常一样对其应用名称空间。所以,例如。

<?php namespace Models; 

use Eloquent; 

class Event extends Eloquent { 

} 

之后,应正确设置你的composer.json以便它加载您的模型。您可以使用classmappsr-0进行此操作,具体取决于您是否使用目录结构跟踪PSR-0。

我很确定models目录已经映射。

编辑
正如你必须运行composer dump-autoload的评论中提到。

+3

这并获得成功,甚至没有想到运行'作曲家转储autoload',但现在它的工作原理。 – Dwight 2013-04-20 04:20:45

+0

有这个完全相同的问题。谢谢! – 2014-04-26 21:03:02

+0

Illuminate/Database/Eloquent/Model.php has not many Class with'Event'not found not found – malhal 2014-09-11 12:44:40

0

多达我有关于使用命名空间的研究,因为我想用那些PHPDocumentar,它不可能里面添加两次的命名空间,如laravel已经将那些对你来说,如果我们懂得基本的问题,为什么我们使用命名空间

1-许多库使用相同的类名,所以我们使用命名空间来区分它。

2 - 如果你想使用的命名空间,那么你应该走出应用的范围,意味着是你的供应商的文件夹这种东西。

享受