【问题标题】:Non-static method Waavi\Translation\Repositories\Repository::find() should not be called statically, assuming $this from incompatible context假设 $this 来自不兼容的上下文,不应静态调用非静态方法 Waavi\Translation\Repositories\Repository::find()
【发布时间】:2016-12-07 21:10:06
【问题描述】:

我的控制器中的这段代码

$language = LanguageRepository::find(1);

抛出以下错误:

不应静态调用非静态方法 Waavi\Translation\Repositories\Repository::find(),假设 $this 来自不兼容的上下文

谁能告诉我为什么会出现这个错误?

【问题讨论】:

  • 您在下面有答案,@Joseph 或简单的 use ..path_to_that_class\LanguageRepository; 在您的控制器顶部
  • 没关系我输入使用Waavi\Translation\Repositories\LanguageRepository;但它仍然给出同样的错误

标签: php laravel laravel-5 laravel-5.1


【解决方案1】:

您必须实例化您的存储库:

$language = (new LanguageRepository(new Language))->find(1);

【讨论】:

  • 现在它说“传递给 Waavi\Translation\Repositories\LanguageRepository::__construct() 的参数 1 必须是 Waavi\Translation\Models\Language 的实例,没有给出”
  • @OunknownO - 然后你必须将一个新模型传递给构造函数。我已经更新了我的答案。
  • 现在它说传递给 Waavi\Translation\Repositories\LanguageRepository::__construct() 的参数 2 必须是 Illuminate\Foundation\Application 的实例,没有给出,
猜你喜欢
  • 2016-09-21
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-27
  • 2014-11-08
相关资源
最近更新 更多