在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
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)
你实际上可以在你的刀片模板中调用一个类、帮助类或任何声明的类,但把它放在 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)
| 归档时间: |
|
| 查看次数: |
61212 次 |
| 最近记录: |