首页 > 解决方案 > 无法在 Laravel 中使用 Eloquent 和 SQL Server 数据库进行选择

问题描述

Greatings,我是 laravel 的新手。今天我用 Laravel 和 SQL Server 为数据库做了一个项目。我可以连接到该数据库,并且可以使用用户迁移进行默认迁移。但是当我选择表用户并将其返回到 json 时,结果是空白的。这是我的选择

    {
        //
        $dataUser = User::all();
        return response()->json($dataUser);
    }

结果在浏览器上只有 [],我也使用 Postman,但结果是一样的。我在数据库上有 2 条记录。

然后不想用不同的表,我使用现有的表,表名是 Purchases,表有大约 100 条记录。这就是我的桌子模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Purchases extends Model
{
    protected $table = 'Purchases';
    protected $primaryKey = 'PurchaseID';
    protected $guarded = ['PurchaseID'];
    const CREATED_AT = 'CreatedTime';
    const UPDATED_AT = 'LastModifiedTime';
}
?>

我在 purchaseController 中使用相同的代码

namespace App\Http\Controllers;
use App\Purchases;

public function index()
    {
        //
        $dataPurchase = Purchases::all();
        return response()->json($dataPurchase);
    }

但是当我加载像这样返回错误的浏览器时

Illuminate\Database\QueryException
SQLSTATE[42S02]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name 'purchases'. (SQL: select * from [purchases])

在我的 SSMS 中,我的表是 [dbo].[purchases],迁移是 [dbo].[users]

请帮我解决这个问题。谢谢

编辑:我认为我的连接有问题,因为我只在 apache 上注册了 php PDO 驱动程序,并更改了 laravel 配置。我可以使用迁移,但是当我使用 faker 时,tinker 上显示的数据不会保存在 DB 用户上

标签: sql-serverlaravel

解决方案


您的代码在我的项目中完美运行。检查 env 或 databse.php 中的数据库连接


推荐阅读