【发布时间】:2017-07-28 09:50:15
【问题描述】:
我可以通过pdo 查询访问database。现在我对这两件事都很陌生,因为我是 php 的新手,所以我不知道哪个更适合使用,但我认为实体管理器会更容易。
我的目标是拥有一个简单的web 应用程序,它可以显示来自sql-server database 的数据。
系统
-
windows8 -
php7 -
sql-serverpdo4 -
symfony3
错误信息:
SQLSTATE[08001]:[Microsoft][ODBC Driver 13 for SQL Server]TCP 提供程序: 由于目标机器主动拒绝,无法建立连接。
我的代码:
$repo = $em->getRepository('MyBundle:MyObject');
MyObject.php
<?php
// src/MyBundle/Entity/MyObject.php
namespace MyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* MyObject
*
* @ORM\Table(name="MyObject")
* @ORM\Entity(repositoryClass="MyBundle\Repository\MyObjectRepository")
*/
class MyObject {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=4)
*/
private $type;
}
MyObjectRepository.php
<?php
/**
* Created by PhpStorm.
* User: rsluimers
* Date: 28-7-2017
* Time: 10:55
*/
namespace MyBundle\Repository;
use Doctrine\ORM\EntityRepository;
class MyObjectRepository extends EntityRepository {
public function create() {
$entity = new MyObject();
$entity->type('WM_B');
$this->_em->persist($entity);
$this->_em->flush();
}
}
【问题讨论】:
-
你的parameters.yml文件配置正确了吗?
-
persist和flush方法在EntityManager中不是静态的。此外,您的代码在MyObjectRepository extends MyObjectRepository中也没有意义。而且你的方法MyObject::getRepository不是一个好主意。 -
最可能的原因是防火墙。
-
@JakubMatczak 谢谢。存储库和实体代码是我从 stackoverflow 中提取的,尽管第二个错误是重命名错字。
-
@rmsluimers 你能从
config.yml发布doctrine.dbal配置吗?
标签: php sql-server symfony pdo doctrine-orm