如何在laravel 5中调用自定义助手?

时间:2017-04-03 08:35:21

标签: php laravel

我想做我自己的帮手,然后把它放在app/http/helpers.php中。 这是我的帮助代码:

<?php

namespace App\Helpers;
use Auth;
class helper {

    public static function is_login() {
        if(Auth::check()){
           return True;
        }else{
           return False;
        }
    }

    public static function must_login(){
        if(Auth::check()){
           return True;
        }else{
           return Redirect::to('logout');;
        }
    }
}

?>

这是我的app.php代码:

  'aliases' => [
                'customhelper'=> App\Helpers\Helper::class
               ]

当我用于我的刀片文件customhelper::is_login()时,它可以正常工作。但是,当我尝试在我的控制器customhelper::must_login()中使用时,它不起作用而且我有一些错误

  

Class&#39; App \ Http \ Controllers \ customhelper&#39;找不到

2 个答案:

答案 0 :(得分:5)

使用与Helper Class名称相同的别名,并将use语句添加到Controller文件中。

例如:

app/Helpers/Helper.php

<?php
namespace App\Helpers;

class Helper{
    public static function SayHello()
    {
        return "SayHello";
    }
}

config/app.php

'aliases' => [
    /*Defaults...*/
    'Helper' => App\Helpers\Helper::class, 
],

app/Http/Controllers/MyController.php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Helper; // Important

class MyController extends Controller
{
    public function index()
    {
        return Helper::SayHello();
    }
}

答案 1 :(得分:1)

@Reynald Henryleo

首先,您提到了'app/http/helpers.php'您的帮助文件路径,在这种情况下,您的命名空间应该是'namespace App\Http'

为了更好地理解全局帮助函数,请参阅Laravel 5中的&#39;自定义类,Best practices for custom helpers on Laravel 5的简单方法部分