当前位置: 首页 > 知识库问答 >
问题:

对Laravel 5上的非对象错误调用成员函数connection()

越星晖
2023-03-14

我想在数据库中存储用户配置数据,我正在关注这个论坛的帖子http://forumsarchive.laravel.io/viewtopic.php?id=10406但当我实现它时,laravel抛出了一个错误。我运行了composer dump autoload,但似乎没有任何功能。这里有什么问题?

//文件名:app/config/settings。php

use \App\Models\Setting

$list = array();

$format = function(&$list, $keys, $val) use(&$format) {
    $keys ? $format($list[array_shift($keys)], $keys, $val) : $list = $val;
};

foreach(Setting::all() as $setting) {
    $format($list, explode('.', $setting->token), $setting->content);
}

return $list;

用法:

echo Config::get('settings.token');//返回“content”的值

完全错误

Fatal error: Call to a member function connection() on a non-object in C:\wamp\www\iapp\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php on line 3137
Call Stack
#   Time    Memory  Function    Location
1   0.0017  247544  {main}( )   ..\index.php:0
2   0.0910  2848480 Illuminate\Foundation\Http\Kernel->handle( )    ..\index.php:58
3   0.0910  2848736 Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter( )  ..\Kernel.php:86
4   0.0917  2886304 Illuminate\Foundation\Http\Kernel->bootstrap( ) ..\Kernel.php:110
5   0.0917  2886472 Illuminate\Foundation\Application->bootstrapWith( ) ..\Kernel.php:215
6   0.0974  2994336 Illuminate\Foundation\Bootstrap\LoadConfiguration->bootstrap( ) ..\Application.php:194
7   0.0986  3025160 Illuminate\Foundation\Bootstrap\LoadConfiguration->loadConfigurationFiles( )    ..\LoadConfiguration.php:38
8   0.1407  3814624 require( 'C:\wamp\www\iapp\config\settings.php' )   ..\LoadConfiguration.php:56
9   0.1407  3814696 ConfigSetting::getSettings( )   ..\settings.php:28
10  0.1494  4488840 Illuminate\Database\Eloquent\Model::all( )  ..\settings.php:16
11  0.1496  4494520 Illuminate\Database\Eloquent\Model->newQuery( ) ..\Model.php:646
12  0.1496  4494616 Illuminate\Database\Eloquent\Model->newQueryWithoutScopes( )    ..\Model.php:1769
13  0.1496  4494688 Illuminate\Database\Eloquent\Model->newBaseQueryBuilder( )  ..\Model.php:1795
14  0.1496  4494736 Illuminate\Database\Eloquent\Model->getConnection( )    ..\Model.php:1852
15  0.1496  4494784 Illuminate\Database\Eloquent\Model::resolveConnection( )

编辑:

名称空间应用程序\模型;

使用Illumb\Database\Elount\Model;

类设置扩展了模型{

}

共有3个答案

汪弘光
2023-03-14

使用设置文件中的模型并不是使用它们的最佳方式。

您的问题是,您的模型查询在Laravel启动其服务之前启动。这就是为什么当您尝试进行查询时,模型无法解析它的连接,因为DB服务尚未启动。

如果你想做这件事,创建你自己的服务提供商并更新你的配置,或者在你现有的AppServiceProvider引导方法中做这件事。

单昊穹
2023-03-14

转到引导/应用程序。php

只是取消评论

$app->withEloquent();
方航
2023-03-14

在Laravel6中运行测试用例时。x及以上,我经常遇到这个错误。我意识到单元测试是从phpunittestclass扩展而来的,而不是从Laravel TestCase扩展而来的。所以改变PHPUnit\Framework\TestCase Tests\TestCase

<?php


use Tests\TestCase;

class ArtifactTest extends TestCase{

}

 类似资料:
  • 请帮帮我 致命错误:在第104行的/home/u357965800/public_html/include/class.admin.php中对非对象调用成员函数prepare()

  • 问题内容: 因此,我正在重构代码以实现更多的OOP。我设置了一个类来保存页面属性。 稍后,我像这样调用set_page_title()函数 当我收到错误消息时: 调用非对象上的成员函数set_page_title() 那我想念什么呢? 问题答案: 这意味着它不是对象的实例。我们可以看到您用来初始化变量的代码吗? 当您期望特定的对象类型时,还可以使用PHP的类型提示功能 Docs 在违反逻辑时得到错

  • 我尝试了一些代码来使用PHP和slim框架构建RESTful API Web服务。(我正在使用高级Rest客户端测试此代码) 这是我的密码。

  • 这是我代码的一部分 我得到一个错误致命错误:对$stmt行上的非对象调用成员函数bind_param()-

  • 我得到一个错误与此文本:(对不起,我的英语不好,我来自德国!) 错误:

  • 问题内容: 我的查询有问题。我最近改用了PDO,这对我来说是新的。现在,我需要在查询中使用JOIN来从另一个表中获取数据,而无需执行两次执行。 问题是,我收到此错误: 我不明白问题是什么。这是我的代码的样子: 或简称为查询: 我想要的是,从用户ID为session且请求为0的朋友那里获取所有行。但是然后我想获取用户中那些朋友的ID,以便我可以链接到他们的个人资料。注意 感谢您提供任何反馈意见,不必