标签: doctrine

Symfony 错误 - 无法访问私有属性 AppBundle\Entity\VacancyEntity::$jobDescription

当我尝试访问 symfony 2.8 中的获取结果时,出现此错误。这是我的代码

 public function staticAction(Request $request)
    {   


      $jobid = $this->get('session')->get('jobid');
      $jobDetails = $this->getVacancyData($jobid);
      echo "<pre>";
      var_dump($jobDetails);
      $description = $jobDetails->jobDescription;


      return $this->render('FrontEnd/job.html.twig', array('jobdetails' => $jobDetails ));
    }

    public function getVacancyData($id){

        $vacancy = $this->getDoctrine()
        ->getRepository(VacancyEntity::class)
        ->findOneBy(array('id' => $id));


        if (!$vacancy) {
            throw $this->createNotFoundException();
        }else{
            return $vacancy;
        }  

    }
Run Code Online (Sandbox Code Playgroud)

以下行发生错误,

$description = $jobDetails->jobDescription;
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题呢?

php doctrine symfony symfony-2.8

-1
推荐指数
1
解决办法
5394
查看次数

如何从我的 ArrayCollection 获取数据?

我正在尝试通过学说从我的数组集合中加载数据:

 $pages = $this->em->getRepository(Pages::class)->findAll();
Run Code Online (Sandbox Code Playgroud)

结果是:

2 => Pages^ {#1598 ?
-id: 3
-name: "cat"
-membergroup: PersistentCollection^ {#1603 ?
  -snapshot: []
  -owner: Pages^ {#1598}
  -association: array:16 [ …16]
  -em: EntityManager^ {#278 …11}
  -backRefFieldName: "pages"
  -typeClass: ClassMetadata {#693 …}
  -isDirty: false
  #collection: ArrayCollection^ {#1604 ?
    -elements: []
  }
  #initialized: false
}
Run Code Online (Sandbox Code Playgroud)

}

问题是,我希望成员组 ArrayCollection 中有一个元素。但它是空的。

php doctrine arraycollection symfony

-1
推荐指数
1
解决办法
53
查看次数

Symfony 和 Doctrine - 未找到 getDoctrine

我正在尝试构建一个简单的应用程序我有一个数据库,其中的表“匹配”表结构

我将这段代码写为实体

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="matches")
 */

class Match
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="text", length=512)
     */
    private $descr;
    /**
     * @ORM\Column(type="string", length=255)
     */
    private $team_a;
    /**
     * @ORM\Column(type="string", length=255)
     */
    private $team_b;
    /**
     * @ORM\Column(type="string", length=255)
     */
    private $location;
    /**
     * @ORM\Column(type="datetime")
     */
    private $datetime;

    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /** …
Run Code Online (Sandbox Code Playgroud)

php mysql doctrine symfony

-2
推荐指数
1
解决办法
4766
查看次数

Laravel 6 上的 Doctrine 安装失败

我对 Laravel 和学说完全陌生,一开始我选择 Laravel 6 并阅读了一些教程。正如我所见,将 Doctrine 与 Laravel 一起使用会更好,然后我尝试将 Doctrine 安装到我的项目中,但不幸的是,它失败了。

是不是因为 Laravel 6 是新的并且还不支持 Doctrine?或者我做错了什么?

我在作曲家上试过这个命令

composer require "laravel-doctrine/orm:1.3.*"
Run Code Online (Sandbox Code Playgroud)

它给了我一些错误,例如

在此处输入图片说明

然后,我尝试遵循 6.x 版的 Laravel 文档,并在数据库部分发现它提到在修改列之前安装学说/dbal

在修改一个列之前,一定要添加到你的 composer.json 文件中的 dotric/dbal 依赖。Doctrine DBAL 库用于确定列的当前状态并创建对列进行指定调整所需的 SQL 查询:

作曲家需要学说/dbal

但是,这个命令也会导致我出现同样的错误。

请指导我走正确的道路。谢谢你。

php doctrine doctrine-orm laravel laravel-6

-2
推荐指数
1
解决办法
646
查看次数

从数据库加载 Symfony (5.2) 配置

我是 Symfony 的新手,但我知道如何在 PHP 中使用 OOP。我尝试(沮丧地)通过使用 Doctrine 实体将自定义参数与 Symfony 配置结合起来。

为了解决我使用的问题,例如 Michael Sivolobov 的回答:https ://stackoverflow.com/a/28726681/2114615和其他来源。

我的解决方案:

第 1 步:在 config 文件夹中创建新包

-> config
  -> packages
   -> project
   -> services.yaml
   -> project
    -> src
    -> ParameterLoaderBundle.php
    -> DependencyInjection
     -> Compiler
     -> ParameterLoaderPass.php
Run Code Online (Sandbox Code Playgroud)

第 2 步:导入新资源

# config/services.yaml
...
imports:
    - { resource: 'packages/project/config/services.yaml' }
...
Run Code Online (Sandbox Code Playgroud)

第 3 步:包装编码

# packages/project/config/services.yaml

services:
    Project\:
        resource: "../src"
Run Code Online (Sandbox Code Playgroud)
<?php

namespace Project;

use Project\DependencyInjection\Compiler\ParameterLoaderPass;
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;

class ParameterLoaderBundle extends Bundle
{ …
Run Code Online (Sandbox Code Playgroud)

doctrine config symfony

-2
推荐指数
1
解决办法
135
查看次数