【发布时间】:2015-09-07 09:28:43
【问题描述】:
所以我想为自定义类添加一个别名,以便能够在刀片中使用它们:
<?php
namespace App\Classes;
class Requirement
{
public static function Test()
{
return "hello";
}
}
在config/app.php 我添加了一个别名,如下所示:
...
'Requirement' => App\Classes\Requirement::class
然后,我希望能够在刀片模板中调用它,例如
{{ Requirement::Test() }}
但别名无法以某种方式工作。我也试过composer dump-autoload,但还是不行。
顺便说一句:添加这样的自定义类是实现特定于站点的逻辑(例如从数据库中检索和处理数据)的可行方法还是有更好的方法?
编辑 1
我在app/Facades 中创建了Requirement.php,内容如下
<?php
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class Requirement extends Facade{
protected static function getFacadeAccessor() { return 'Requirement'; }
}
在app/Providers中添加了PageContentProvider.php,内容如下
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class PageContentProvider extends ServiceProvider
{
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind('Requirement', function($app){
return new \App\Classes\Requirement();
});
}
}
在config/app.php 中的别名
'Requirement'=>App\Facades\Requirement::class
以及提供者
App\Providers\PageContentProvider::class
但它仍然无法正常工作。
编辑 2
通过添加类似的东西
exit();
或
echo "blabla";
在register() 内部,没有任何变化。这是否表明PageContentProvider 甚至没有加载?
编辑 3
由于标准的AppServiceProvider 被加载,我删除了config/app.php 中AppServiceProvider 的对应条目...... 它仍然有效!不知何故我的更改没有得到应用。有人有解决办法吗?
【问题讨论】: