所以我希望能够为自定义类添加别名,以便在blade中使用它们:
在
在
或者
<?php
namespace App\Classes;
class Requirement
{
public static function Test()
{
return "hello";
}
}
在
config/app.php
文件中,我添加了一个别名,如下所示:...
'Requirement' => App\Classes\Requirement::class
那么,我希望能够像这样在 Blade 模板中调用它:
{{ 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
中对应的条目... 仍然可以正常工作! 不知何故我的更改没有得到应用。有人有解决办法吗?
composer dump-autoload
,随后无论何时调用helloWorld() - 都可以检查是否加载了文件本身是问题所在。 - Iamzozoapp/Classes/Requirement.php
,如果您正在运行Linux/Unix,则可能区分大小写。 - Iamzozo