2014-09-26 105 views
7

在laravel中,沒有定義常量文件,所以我繼續尋找一種方法來實現常量的使用。下面的方法是我設法把它放在一起:在laravel中定義常量

// app/config/constants.php 
return['CONSTANT_NAME' => 'value']; 

// index.blade.php 
{{ Config::get('constants.CONSTANT_NAME') }} 

現在,我的問題是;有沒有一種更清晰的方式來檢索我的常量?例如:

{{ Constant::get('CONSTANT_NAME') }} 

這是爲了讓我的視線更加美觀,簡潔,乾淨。

欣賞輸入!

回答

8

一兩件事你可以做的是share pieces of data across您的觀點:

View::share('my_constant', Config::get('constants.CONSTANT_NAME')); 

把,在你的routes.php的頂部,然後不斷的將在你的所有刀片意見訪問:

{{ $my_constant }} 
+1

哈!不知道爲什麼我沒有想到這一點,特別是因爲我熟悉Laravel的共享功能! – Marfat 2014-09-26 15:33:34

4

Config類旨在替換常量的需要併發揮相同的作用。

app/config/constants.php返回一組鍵/值對,然後使用Config::get('constants.key')來訪問它們。

你可以想象創建一個Constant類具有get功能的快捷方式:

class Constant { 
    public function get($key) { 
    return Config::get('constants.' . $key); 
    } 
} 

,但使用標準Laravel處理很可能是更好的其他Laravel開發人員試圖用你熟悉代碼。

1

在第5版中,您可以像@ msturdy建議的那樣執行操作,除非您將常量存儲在.env文件或生產環境中,作爲服務器上實際的$ _ENVIRONMENT變量。

例.ENV項:

CONSTANT=value 

然後調用,像這樣:

View::share('bladeConstant', env('CONSTANT')); 

然後加載:

{{ bladeConstant }} 
+1

.env不建議在生產環境中使用(https://github.com/vlucas/phpdotenv#usage-notes),它可能表現不可預知(因此,我認爲在開發中甚至沒有那麼有用!)。 – toby1kenobi 2016-06-21 08:46:20

+0

但是,環境變量也可以在服務器上設置,而不是使用.env文件。其餘部分保持不變。我已經更新了我的答案以更好地反映這一點。 – 2016-06-22 17:11:47