2016-02-27 65 views
0

所有頁面有常量我想有一些常量有IP,平臺,瀏覽器被放置在一個單獨的文件,並在所有的視圖和控制器,像這樣使用:在Laravel

//內部應用程序/config/constants.php

return [ 
    'IP' => 'some ip' 
]; 

//內部控制

echo Config::get('constants.IP'); 

但不是 '一些IP',我想用Request::ip()至少,甚至更好,用parse_user_agent()['platform'],我TS代碼鏈接是here

回答

1

簡單,你可以把這樣的事情在你的配置文件:

return [ 
    'ip' => app('request')->ip() 
]; 

我用一點點定製一個用於我的sitewise配置,例如,假設您想要使用類似這樣的內容:

/** 
* Get config/constants.php 
* 
* [ 
* 'person' => [ 
*  'name' => 'Me', 
*  'age' => 1000 
* ] 
* ]; 
*/ 
$name = constants('person.name'); 

那麼,要實現這一點,你需要寫這樣一個功能:現在

// Helpers/Common.php 
function constants($key = null) 
{ 
    $constants = config('constants'); 
    return is_null($key) ? $constants : array_get($constants, $key); 
} 

,在composer.json文件,你可以添加以下files項:

"psr-4": { 
     "App\\": "app/" 
}, 
"files": ["Helpers/Common.php"] 

然後你需要添加在constants.phpconfig目錄,例如:

<?php 

return [ 
    "ip" => app('request')->ip(), 
    "person" => [ 
     "name" => "Sheikh Heera", 
     "age" => 10000 
    ], 
]; 

最後,剛剛從之三跑composer-dump minal,你就完成了。所以,如果ip鍵數組中可用,那麼你可能只是試試這個:

$ip = constants('ip'); 

從視圖(刀片),你可以使用以下呼應了ip

{{ constants('ip') }} 

讓我們總結全過程:

  • 在你的項目的根(或裏面,如果你想APP)爲Helpers創建一個目錄。

  • 創建Common.php文件在該目錄中,並把該陣列(歸還)

  • constants功能(上面給出)在Common.php文件

  • 添加files(上面給出的)關鍵在composer.json文件

  • 運行composer-dump更新自動加載文件

就是這樣。使用描述您的domian的文件名稱和助手函數名稱,因此您可以使用例如site或您的域名,而不是constants

0

可以創建(或使用現有)服務提供商和在寄存器方法使用以下代碼:

view()->share('constants', config('constants', [])); 

在視圖上的輔助函數使用份額將在共享可變所有的觀點。

現在,您可以用刀片訪問該變量在任何視圖,例如:

{{ array_get($constants, 'ip') }} 
+0

沒有親愛的,我的問題是在行動之前。在共享之前,我無法獲取IP,因爲當我在代碼中使用Request :: ip()時,它會返回致命錯誤:致命錯誤:Uncaught ReflectionException:類日誌不存在於C:\ xampp \ htdocs \ Project \ vendor \ laravel \ framework \ src \ Illuminate \ Container \ Container.php:738堆棧跟蹤:#0 C:\ xampp \ htdocs \ Project \ vendor \ laravel \ framework \ src \ Illuminate \ Container \ Container.php(738 ):ReflectionClass - > __ construct('log')#1 C:\ xampp \ htdocs \ Project \ vendor \ laravel \ framework \ src \ Illuminate \ Container \ Container.php(633):Illuminate \ Container \ Container-> build( 「L ... –