gpt4 book ai didi

sql-server - SQL Server 和 Laravel : Invalid Object Name error

转载 作者:行者123 更新时间:2023-12-04 19:24:00 29 4
gpt4 key购买 nike

如果我使用的是 MySQL,则以下代码有效。当我切换到 MS SQLServer 时出现错误。我已经启用了 pdo sqlsrv 驱动程序。我的数据库有一个名为 products 的表,但它显示的对象名称无效。

Product.php(模型)

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
protected $connection = 'sqlsrv';
}
?>

数据库.php
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_EXT_HOST', 'localhost'),
'database' => env('DB_EXT_DATABASE', 'forge'),
'username' => env('DB_EXT_USERNAME', 'forge'),
'password' => env('DB_EXT_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
]

Controller :
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Product;
use App\Http\Requests;

class APIController extends Controller
{
public function index(Request $request)
{
$products = Product::paginate(5);
return response(array(
'error' => false,
'products' =>$products->toArray(),
),200);
}
}
?>

输出:

SQLSTATE[42S02]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid object name 'products'. (SQL: select count(*) as aggregate from [products])

最佳答案

如果添加正确的架构不起作用,则可能是您的用户的权限问题。我猜您正在使用“forge”用户访问数据库-该用户是否对该表具有选择权限?

您可能必须运行它才能确定:

GRANT SELECT ON dbo.products TO forge

关于sql-server - SQL Server 和 Laravel : Invalid Object Name error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41279431/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com