Laravel 5-在哪里定义函数并在视图和控制器中调用它们

夹子

我有以下功能,想从视图中调用它。基本上我想将所有常用功能放在一个文件中。我不确定在哪里创建该文件以及如何在控制器和视图中调用它。

<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use DB;

class CommonController extends Controller {

public function BytesToMB($bytes=0)
{
    if(empty($bytes))
    return 0;

    $kb = ceil($bytes/1024);

    $mb = ceil($kb/1024);

    return $mb;
}

}

到目前为止,我已经在app / Http / Controllers中创建了CommonController.php并在其中放置了上面的功能。

然后在其他控制器中,我尝试通过以下方式调用它:

use App\Http\Controllers\Common;

class SongsController extends Controller {
    public function index($id)
    {
       echo Common::BytesToMB('7012187');
    }
}

但是我得到了错误:

 Class 'App\Http\Controllers\Common' not found
侏儒

好的,新尝试。您错过了使用完整的类名并添加static关键字的机会:

<?php 

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use DB;

class CommonController extends Controller {

    public static function BytesToMB($bytes=0)
    {
        if(empty($bytes))
        return 0;

        $kb = ceil($bytes/1024);

        $mb = ceil($kb/1024);

        return $mb;
    }

}

接着:

<?php
namespace App\Http\Controllers;

// You do not need to define this, if you are in the same namespace
use App\Http\Controllers\CommonController;

class SongsController extends Controller {
    public function index($id)
    {
       echo CommonController::BytesToMB('7012187');
    }
}

另一个和更多的OOP解决方案是使用父类中的函数:

<?php 

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use DB;

class CommonController extends Controller {

    protected function BytesToMB($bytes=0)
    {
        if(empty($bytes))
        return 0;

        $kb = ceil($bytes/1024);

        $mb = ceil($kb/1024);

        return $mb;
    }

}

接着:

<?php
namespace App\Http\Controllers;

// You do not need to define this, if you are in the same namespace
use App\Http\Controllers\CommonController;

class SongsController extends CommonController {

    public function index($id)
    {
       echo $this->bytesToMB('7012187');
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel 5-在哪里定义函数并在视图和控制器中调用它们

来自分类Dev

我如何为数据库活动创建函数并在Laravel 5.1中的控制器中调用它们

来自分类Dev

如何在Laravel 5的视图内调用控制器函数

来自分类Dev

Laravel 5中不存在定义的控制器

来自分类Dev

Laravel 5-干净的代码,在哪里保留业务逻辑(控制器示例)

来自分类Dev

负载控制器在Laravel 5中

来自分类Dev

控制器中的 Laravel 5 验证

来自分类Dev

Laravel 5 如何从控制器传递单个变量并在刀片视图文件中捕获相同的变量?

来自分类Dev

Laravel 5从控制器传递变量到视图

来自分类Dev

在视图中获取Laravel 5控制器名称

来自分类Dev

Laravel 5从控制器传递变量到视图

来自分类Dev

Laravel 5-更改模型,视图,控制器路径

来自分类Dev

Laravel 5自定义404控制器

来自分类Dev

Laravel 5自定义404控制器

来自分类Dev

在Laravel 5控制器中使用自定义函数

来自分类Dev

Laravel 5资源控制器

来自分类Dev

使用Laravel 5 [phpunit]的测试方法和控制器

来自分类Dev

如何在Laravel 5中调用2条前缀路由通用的特定控制器

来自分类Dev

Laravel 5:在控制器中创建新模型

来自分类Dev

如何在laravel 5控制器中复制文件

来自分类Dev

laravel 5在控制器中获取默认语言

来自分类Dev

laravel 5在控制器中获取当前语言ID

来自分类Dev

AngularJS控制器中的Laravel 5雄辩模型对象

来自分类Dev

在laravel 5中找不到类控制器

来自分类Dev

laravel控制器中缺少5种宁静的方法

来自分类Dev

AngularJS控制器中的Laravel 5雄辩模型对象

来自分类Dev

如何在Laravel 5中访问管理控制器?

来自分类Dev

laravel控制器中缺少5种宁静的方法

来自分类Dev

Laravel 5-在控制器文件中为多个路由定义中间件

Related 相关文章

  1. 1

    Laravel 5-在哪里定义函数并在视图和控制器中调用它们

  2. 2

    我如何为数据库活动创建函数并在Laravel 5.1中的控制器中调用它们

  3. 3

    如何在Laravel 5的视图内调用控制器函数

  4. 4

    Laravel 5中不存在定义的控制器

  5. 5

    Laravel 5-干净的代码,在哪里保留业务逻辑(控制器示例)

  6. 6

    负载控制器在Laravel 5中

  7. 7

    控制器中的 Laravel 5 验证

  8. 8

    Laravel 5 如何从控制器传递单个变量并在刀片视图文件中捕获相同的变量?

  9. 9

    Laravel 5从控制器传递变量到视图

  10. 10

    在视图中获取Laravel 5控制器名称

  11. 11

    Laravel 5从控制器传递变量到视图

  12. 12

    Laravel 5-更改模型,视图,控制器路径

  13. 13

    Laravel 5自定义404控制器

  14. 14

    Laravel 5自定义404控制器

  15. 15

    在Laravel 5控制器中使用自定义函数

  16. 16

    Laravel 5资源控制器

  17. 17

    使用Laravel 5 [phpunit]的测试方法和控制器

  18. 18

    如何在Laravel 5中调用2条前缀路由通用的特定控制器

  19. 19

    Laravel 5:在控制器中创建新模型

  20. 20

    如何在laravel 5控制器中复制文件

  21. 21

    laravel 5在控制器中获取默认语言

  22. 22

    laravel 5在控制器中获取当前语言ID

  23. 23

    AngularJS控制器中的Laravel 5雄辩模型对象

  24. 24

    在laravel 5中找不到类控制器

  25. 25

    laravel控制器中缺少5种宁静的方法

  26. 26

    AngularJS控制器中的Laravel 5雄辩模型对象

  27. 27

    如何在Laravel 5中访问管理控制器?

  28. 28

    laravel控制器中缺少5种宁静的方法

  29. 29

    Laravel 5-在控制器文件中为多个路由定义中间件

热门标签

归档