Ric*_*iti 6 php laravel laravel-5
我有一个自定义类,我必须在我的视图中使用.但我是怎么做到的?
在Laravel 4.2中,我只需运行composer.phar dump-autoload并添加start/local.php如下:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/helpers/MyClass',
));
Run Code Online (Sandbox Code Playgroud)
最后,在我看来,我只是使用我的课程:MyClass::myMethod().再次,我如何使用Laravel 5做到这一点?
谢谢
man*_*nix 19
你有两个选择,做一个Service或一个Service Provider.
这个类可以作为一个包含所有方法静态的帮助器.例如,在app/Services文件夹中,您可以创建一个新文件夹:
<?php
namespace Myapp\Services;
class DateHelper{
public static function niceFormat(){
return "This is a nice format";
}
}
Run Code Online (Sandbox Code Playgroud)
然后,config/app.php像这样在这个类中添加一个别名:
'DateHelper' => 'Myapp\Services\DateHelper'
Run Code Online (Sandbox Code Playgroud)
现在,在您的应用程序中,您可以调用niceFormat()方法\DateFormat::niceFormat();
另一方面,您可以创建类似文档状态的服务提供者并附加Facade.
我刚刚发现您可以通过简单的注入将任何类实例添加到视图中。
https://laravel.com/docs/5.6/blade#service-injection
只需创建一个类,如:
应用程序/容器/Helper.php
namespace App\Containers;
class Helper {
function foo() {
return 'bar';
}
}
Run Code Online (Sandbox Code Playgroud)
在刀片视图文件中:
@inject('helper', 'App\Containers\Helper')
<div>
What's Foo: {{ $helper->foo() }}
</div>
Run Code Online (Sandbox Code Playgroud)
而且,就是这样!是不是很酷!
| 归档时间: |
|
| 查看次数: |
7682 次 |
| 最近记录: |