当我尝试访问 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)
怎么解决这个问题呢?
我正在尝试通过学说从我的数组集合中加载数据:
$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
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) 我对 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
但是,这个命令也会导致我出现同样的错误。
请指导我走正确的道路。谢谢你。
我是 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 ×5
php ×4
symfony ×4
config ×1
doctrine-orm ×1
laravel ×1
laravel-6 ×1
mysql ×1
symfony-2.8 ×1