在Laravel 4中,我如何創建模型的實例並使其全局可用?即使在看法。我正在尋找類似於使用Auth :: User-> name(我的意思是,不存儲在一個會話中的語法)的方式來獲得User實例,但在這種情況下它將是ModelName :: DefaultEntity-> attribute 。如何訪問laravel 4中的全局模型實例?
更詳細一點...
我寫一個應用程序,將容納多個網站 - 有點像一個CMS。所以我有一個網站模型。每個網站模型將具有URL屬性,以便當用戶訪問URL時,應用程序可以從數據庫中檢索網站模型並適當地標記該網站,例如,標題,標誌,主題等...
我希望當前的網站模型可以在任何地方使用,而無需在每個控制器/方法中創建網站的新實例。所以在我的佈局和視圖我可以這樣說:
public static function current()
{
return Website::find(1); // just to test it for now
}
:
{{ Website::Website()->name }}
或
{{ CurrentWebsite::name }}
我已經在網站模型製作一個靜態方法實現了第一個
但是有了它,每次我說:
{{ Website::current()->name }}
再加上它感覺不對。
任何人都可以幫忙嗎?
親切的問候,
羅賓
我不認爲你需要在這裏做任何事情,而且我對你「全球」可用的含義有點不清楚。即使有你所描述的,你仍應該能夠按照預期使用Laravel。如果您擔心數據庫調用,請不要使用'Website :: current() - > name'輸出當前網站的名稱,而是先將模型存儲到變量中。 '$ website = Website :: current();',那麼你可以在沒有第二次數據庫調用的情況下執行'$ website-> name'和'$ website-> otherProperty'。對於關係,看看急切的加載。 –
嗨感謝您的建議。當我在全球範圍內說我的意思是我只想創建一個可以在我的路線,控制器,視圖等中使用的實例,而無需手動將$ website對象傳遞給其他任何類或視圖。我希望這是有道理的。我認爲我所追求的是一個外觀,但我不知道模型的一個實例是否可行。 – user1094128