如果我想爲某些oauth東西做一個currentUser()
函數,我正在做我可以在視圖或控制器中使用它的地方(想想你在應用程序控制器中做helper_method: current_user
的地方)。如何在laravel 5中創建全局幫助函數?
我讀的所有狀態創建一個助手文件夾,並在那裏添加功能,然後你可以這樣做Helpers::functionName
這是正確的方法嗎?
創建可用於刀片模板和控制器的輔助函數的「laravel方法」是什麼?
如果我想爲某些oauth東西做一個currentUser()
函數,我正在做我可以在視圖或控制器中使用它的地方(想想你在應用程序控制器中做helper_method: current_user
的地方)。如何在laravel 5中創建全局幫助函數?
我讀的所有狀態創建一個助手文件夾,並在那裏添加功能,然後你可以這樣做Helpers::functionName
這是正確的方法嗎?
創建可用於刀片模板和控制器的輔助函數的「laravel方法」是什麼?
創建您的應用程序/傭工目錄名的新文件,它AnythingHelper.php 幫助我的一個例子是:
<?php
function getDomesticCities()
{
$result = \App\Package::where('type', '=', 'domestic')
->groupBy('from_city')
->get(['from_city']);
return $result;
}
通過以下命令
php artisan make:provider HelperServiceProvider
爲您的幫助服務提供商
在您新近生成的HelperServiceProvider.php的註冊功能中添加以下代碼
require_once app_path('Helpers/AnythingHelper.php');
現在在你的配置/ app.php加載該服務提供商和你做
'App\Providers\HelperServiceProvider',
創建全局函數文件的另一種有效的方法是直接從作曲家自動加載它。作曲家的自動加載部分接受自動加載的files
數組。
創建一個functions.php
文件你喜歡的地方,在這個例子中,我們要創建它裏面app/Helpers
。
添加您的功能,但這樣做不添加一個類或命名空間。
<?php
function global_function_example($str)
{
return 'A Global Function with '. $str;
}
在composer.json
的autoload
部內添加下列行:
"files": ["app/Helpers/functions.php"]
對於Laravel 5:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": ["app/Helpers/functions.php"]
},
composer dump-autoload
恭喜!您現在可以從您的應用程序的任何部分訪問global_function_example('hello world')
,包括刀片視圖。
我希望這對某人有用!
我還需要創建一個全局函數,可以在多個控制器文件中調用該函數。這看起來很簡單,但運行命令'composer dump-autoload'時會發生什麼?新文件是否已創建?我甚至刪除了像composer.json,gulpfile.js這樣的文件,因爲我根本不認爲它們已被使用。 – hijacker83
太棒了!運行'composer dump-autoload'將與清理作曲者緩存類似。基本上,它重新評估需要從composer.json文件加載的類。祝你好運! –
高效的方法 – NaveenDA
也許這將有助於:http://stackoverflow.com/questions/28290332/best-practices-for-custom-helpers-on-laravel-5 – Iamzozo