我的学说存储库代码不起作用,而我能够正常访问数据库并读取表数据。
我得到这个堆栈跟踪:
EntityManager->getRepository('AppBundle:Person') in srcAppBundleControllerPersonViewController.php (line 18)
public function indexAction(Request $request) {
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('AppBundle:Person');
$persons = $repo->findAll();
dump($persons);
人员实体模型:
Person.php
namespace AppBundleEntity;
use DoctrineORMMapping as ORM;
/**
* Class Person
* @Package AppBundle/Entity
*
* @ORMEntity(repositoryClass="AppBundleRepositoryPersonRepository")
* @ORMTable(name="[Person]")
*/
class Person {
/**
* @ORMColumn(type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORMColumn(type="string", length=4)
*/
protected $type;
}
如果这也是必要的,存储库代码:
PersonRepository.php
<?php
namespace AppBundleRepository;
use /** @noinspection PhpUndefinedClassInspection */
DoctrineORMEntityRepository;
class PersonRepository extends EntityRepository {
public function create() {
$entity = new Person();
$entity->type('WM_B');
$this->_em->persist($entity);
$this->_em->flush();
}
}
SQL Server Configuration Manager ->SQL Server Network Configuration -> Protocols For -> TCP/IP ->
我更改了以下内容
IpAll
TCP Dynamic Ports 49226
TCP Port
自:
IpAll
TCP Dynamic Ports
TCP Port 1433
不确定什么是 TCP 动态端口以及为什么配置它们。
适用于SQL Server 2019 开发人员
在默认安装中:
- TCP/IP 已禁用
- 身份验证设置为仅 Windows 身份验证模式
修复
-
要启用 TCP/IP,请执行以下操作:
Start Menu -> Microsoft SQL Server 2019 -> SQL Server 2019 Configuration Manager -> SQL Server Network Configuration -> Protocols For MSSQLSERVER -> TCP/IP -> Enable
-
若要启用 SQL 身份验证模式,请执行以下操作:
Start Menu -> Microsoft SQL Server Tools -> Microsoft SQL Server Management Studio -> Right-Click the server node -> Properties -> Security -> Under Authentication choose "SQL Server and Windows Authentication Mode"
- 上述更改需要重新启动"MSSQLSERVER"服务。