PHP Lumen 在 null 上调用成员函数 connection()

2022-08-30 11:14:11

我在尝试在Lumen中使用雄辩模型时收到此错误。

在 null 上调用成员函数 connection()

控制器功能:

/**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {

        $employees = Employee::orderBy('first_name', 'asc')->get();
dd($employees);

        $response['precontent'] = view('admin::employee.search')->render();

        $response['content'] = view('admin::employee.index')
            ->with(['employees' => $employees])
            ->render();

        $response['title'] = 'Employees';

        return $response; 

    }

型:

    <?php
    namespace App;

use Illuminate\Database\Eloquent\Model;

class Employee extends Model 
{

    protected $table = 'system_core.employees';

    protected $fillable = [
        'user_id',
        'first_name',
        'last_name',
        'position',
        'primary_address',
        'secondary_address',
        'phone_1',
        'phone_2',
        'birth_date',
        'start_date',
        'end_date'
    ];

}

我对Laravel非常有经验,但刚刚开始了我的第一个Lumen项目,仅用于API使用,我不确定为什么会抛出这个错误。也许这只是我的连接设置?是否必须按以下方式运行所有查询?

$results = app('db')->select("SELECT * FROM users");

谢谢!


答案 1

您应该取消注释 雄辩的呼叫。$app->withEloquent()bootstrap/app.php

https://lumen.laravel.com/docs/5.2/database#basic-usage

更新:

https://lumen.laravel.com/docs/5.8/database 最新版本的文档,请查看 Eloquent ORM 部分


答案 2

根据2021年,这是要检查以修复此错误的检查清单。

您必须:

  1. 通过例如PHPMyAdmin手动创建数据库;
  2. 在文件中配置数据库连接(即设置 、 、 、.envDB_CONNECTIONDB_DATABASEDB_USERNAMEDB_PASSWORD);
  3. 根据上面的答案取消注释,行在$app->withFacades();$app->withEloquent();bootstrap/app.php;
  4. 如果您在 PHPUnit 测试中使用 Eloquent 模型,则必须首先通过在测试类方法中添加以下行来引导 Lumen(或 Laravel):setUp()
    parent::setUp()
    

这应该可以解决它。


推荐