gpt4 book ai didi

php - laravel 自定义类添加别名

转载 作者:行者123 更新时间:2023-12-04 12:01:41 24 4
gpt4 key购买 nike

所以我想为自定义类添加一个别名,以便能够在 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

我创建了 Requirement.phpapp/Facades有以下内容
<?php
namespace App\Facades;
use Illuminate\Support\Facades\Facade;

class Requirement extends Facade{
protected static function getFacadeAccessor() { return 'Requirement'; }
}

已添加 PageContentProvider.phpapp/Providers有以下内容
<?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加载完毕,我删除了 AppServiceProvider 的对应条目在 config/app.php ......它仍然有效!不知何故,我的更改没有得到应用。有人有解决方案吗?

最佳答案

问题根本不是代码:
在意识到 config/app.php 的变化后没有得到应用,一个简单的

php artisan config:clear

从字面上解决了我在问题中提出的每个问题。

关于php - laravel 自定义类添加别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32435307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com