2013-04-20 69 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 - 如果你想使用的命名空間,那麼你應該走出應用的範圍,意味着是你的供應商的文件夾這種東西。

享受