【问题标题】:How to call custom helper in laravel 5?如何在 laravel 5 中调用自定义助手?
【发布时间】:2017-08-28 01:04:56
【问题描述】:

我想做我自己的帮手,我把它放在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() 它不起作用并且我遇到了一些错误

找不到类“App\Http\Controllers\customhelper”

【问题讨论】:

  • 您在控制器中使用了use 语句吗?
  • 有没有composer dump-autoload

标签: php laravel


【解决方案1】:

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

例如:

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();
    }
}

【讨论】:

    【解决方案2】:

    @Reynald Henryleo

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 2017-11-06
      • 2019-02-02
      • 1970-01-01
      • 2017-08-27
      • 2018-12-21
      • 2020-04-18
      • 1970-01-01
      相关资源
      最近更新 更多