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

Vis*_*hal 10 php laravel-5

在laravel 4中我只使用了一个功能

$varbl = App::make("ControllerName")->FunctionName($params);
Run Code Online (Sandbox Code Playgroud)

从我的balde模板(视图页面)调用控制器功能.现在我正在使用Laravel 5来做一个新项目,我尝试使用这种方法从我的刀片模板调用控制器功能.但是它不工作并显示一些错误.是否有任何方法可以从Laravel 5中的视图页面调用控制器功能?

Mr.*_*eer 45

只需在您的视图中尝试此操作:

{{ ControllerName::Functionname($params); }}
Run Code Online (Sandbox Code Playgroud)

要么

<?php echo ControllerName::Functionname($params);?>
Run Code Online (Sandbox Code Playgroud)

请参阅:http://laravel.io/forum/03-06-2014-what-is-the-proper-way-to-call-controllers-from-the-view?page=1

  • 使函数被调用为静态并包含 `&lt;?php use \App\Http\Controllers\ReminderController; ?&gt;` 在视图文件的顶部。 (3认同)
  • 请接受未来访客的答案.[阅读本文](http://stackoverflow.com/help/someone-answers) (2认同)

Kha*_*ukh 25

如果您有被在多个地方使用的功能,你应该把它定义在助手文件,这样做的应用程序/ HTTP /助手文件夹并将其命名为helpers.php创建一个(可能),提及的自动运行块这个文件你的composer.json以下列方式:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Http/Helpers/helpers.php"
    ]
},
Run Code Online (Sandbox Code Playgroud)

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

或者如果你不需要帮助者.你可以简单地从它的控制器中调用它.把它变成一个static function.创建.

public static function funtion_name($args) {}
Run Code Online (Sandbox Code Playgroud)

呼叫.

\App\Http\Controllers\ControllerName::function_name($args)
Run Code Online (Sandbox Code Playgroud)

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

ControllerName::function_name($args)
Run Code Online (Sandbox Code Playgroud)

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

use \App\Http\Controllers\ControllerName;
Run Code Online (Sandbox Code Playgroud)


Ach*_*aul 14

在laravel 5中,你可以这样做

在你看来:

<?php use App\Http\Controllers\ControllerName;
echo ControllerName::functionName(); ?>
Run Code Online (Sandbox Code Playgroud)

functionName应该有'static'关键字,例如

控制器功能:

public static function functionName() {
return "Hello World!";
}
Run Code Online (Sandbox Code Playgroud)


Sey*_*els 6

你实际上可以在你的刀片模板中调用一个类、帮助类或任何声明的类,但把它放在 config 文件夹中 app.php 的别名数组中

        'Helper' =>   App\Http\Helpers\Helper::class,
Run Code Online (Sandbox Code Playgroud)

使用 Helper 作为别名,您可以在刀片模板中引用它,示例如下:

        {{Helper::formatDateToAgo ($notification->created_at)}}                                                
Run Code Online (Sandbox Code Playgroud)