我正在尝试为搜索功能创建自己的自定义外观,但我遇到了一点困难:
type: Symfony\Component\Debug\Exception\FatalErrorException
message: Call to undefined method Illuminate\Foundation\Application::create()
file: H:\myproj\vendor\laravel\framework\src\Illuminate\Container\Container.php
line: 165
此错误是由我的代码命中引起的:
Search::indexObject();
我的Search
立面设置如下:
搜索服务提供者
<?php
namespace MyProj\Search;
use Illuminate\Support\ServiceProvider;
class SearchServiceProvider extends ServiceProvider {
public function register() {
$this->app->bind('search', 'MyProj\Search\Search');
}
}
搜索门面
<?php
namespace MyProj\Facades;
use Illuminate\Support\Facades\Facade;
class Search extends Facade {
public static function getFacadeAccessor() {
return 'search';
}
}
搜索类
<?php
namespace MyProj\Search;
use Elasticsearch\Client;
use Credential;
class Search {
private $elasticSearchClient;
public function __construct() {
$this->elasticSearchClient = new Client(array(
'hosts' => [Credential::ElasticSearchHost]
));
}
public function indexObject($object) {
// Code
return $this->elasticSearchClient->index($params);
}
public function get() {
return $this->$elasticSearchClient;
}
}
我composer dump-autoload
没有成功运行,我的门面和服务提供者加载app.php
如下:
别名数组
'Search' => 'MyProj\Facades\Search',
提供者数组
'MyProj\Search\SearchServiceProvider'
在过去的 30 分钟里,我一直在调试和搜索这个错误,但没有任何修复。这里发生了什么?
编辑:我在堆栈跟踪中添加了,您可以在下面看到。此外,我可以看到它getFacadeAccessor()
被正确调用,但除此之外的任何内容都超出了我的理解范围。
突出显示的框架代表最后一次正常操作,两个框架都Handler.php
代表问题顶部错误的格式和输出。