如何在 laravel 5 的视图中调用控制器函数

新手上路,请多包涵

在 laravel 4 中,我只使用了一个函数

$varbl = App::make("ControllerName")->FunctionName($params);

从我的 balde 模板(查看页面)调用控制器函数。现在我正在使用 Laravel 5 做一个新项目,我尝试使用这种方法从我的刀片模板中调用控制器函数。但它不起作用并显示一些错误。有什么方法可以从 Laravel 5 中的视图页面调用控制器函数?

原文由 Vishal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 948
2 个回答

如果你有一个在多个地方使用的函数,你应该在 helpers 文件中定义它,为此在 app/Http/Helpers 文件夹中创建一个(可能是)并将其命名为 helpers.php,在 autoload 您的 composer.json 块以下列方式:

 "autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Http/Helpers/helpers.php"
    ]
},

运行 composer dump-autoload,然后你可以从任何地方调用这个函数,让它成为控制器视图或模型。

或者如果您不需要放入助手。你可以简单地从它的控制器调用它。只需将其 static function 。创造。

 public static function funtion_name($args) {}

称呼。

 \App\Http\Controllers\ControllerName::function_name($args)

如果你不喜欢很长的代码,你可以直接做

ControllerName::function_name($args)

但不要忘记从视图页面的顶部调用它。

 use \App\Http\Controllers\ControllerName;

原文由 Khan Shahrukh 发布,翻译遵循 CC BY-SA 4.0 许可协议

在视图中调用这样的函数:

 @php

use App\Http\Controllers\ControllerName;
$var = ControllerName::FunctionName();

@endphp

但是如果控制器中的函数名称为:

 public function FunctionName(){

return something;

}

然后会显示错误:

 Non-static method App\Http\Controllers\ControllerName::FunctionName() should not be called statically(...)

所以要解决这个“非静态”问题,你必须像这样改变你的函数:

 public static function FunctionName(){

return something;

}

然后你就完成了。

原文由 Tahasin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题