Symfony 4:试图从错误的命名空间调用函数
Symfony 4: Attempted to call function from wrong namespace
我是 symfony 新手。
我正在尝试遵循一些教程,但我仍然坚持使用 ORM
我使用以下命令生成了一个实体:
php bin/console make:entity
我的实体有一个字段 "name",因此有一个函数 setName ()
我用命令生成了一个控制器:
php bin/console make:controller TestController
在此控制器中,我尝试注册一个新条目,但出现以下错误:
Attempted to call function "setName" from namespace "App \ Controller".
我做错了什么?
TestController.php:
<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use App\Entity\Team;
class TestController extends Controller
{
/**
* @Route("/test", name="test")
*/
public function index()
{
$entityManager = $this->getDoctrine()->getManager();
$team = new Team();
$team.setName("Marvels 6");
$entityManager->persist($team);
$entityManager->flush();
return $this->json([
'message' => 'Welcome to your new controller!',
'path' => 'src/Controller/TestController.php',
]);
}
}
Team.php:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\TeamRepository")
*/
class Team
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Poule", inversedBy="teams")
*/
private $poule;
public function getId()
{
return $this->id;
}
public function getName(): string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getPoule(): Poule
{
return $this->poule;
}
public function setPoule(Poule $poule): self
{
$this->poule = $poule;
return $this;
}
}
这是你复制粘贴的代码吗?
$team.setName("Marvels 6");
大概应该是:
$team->setName("Marvels 6");
我是 symfony 新手。
我正在尝试遵循一些教程,但我仍然坚持使用 ORM
我使用以下命令生成了一个实体:
php bin/console make:entity
我的实体有一个字段 "name",因此有一个函数 setName ()
我用命令生成了一个控制器:
php bin/console make:controller TestController
在此控制器中,我尝试注册一个新条目,但出现以下错误:
Attempted to call function "setName" from namespace "App \ Controller".
我做错了什么?
TestController.php:
<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use App\Entity\Team;
class TestController extends Controller
{
/**
* @Route("/test", name="test")
*/
public function index()
{
$entityManager = $this->getDoctrine()->getManager();
$team = new Team();
$team.setName("Marvels 6");
$entityManager->persist($team);
$entityManager->flush();
return $this->json([
'message' => 'Welcome to your new controller!',
'path' => 'src/Controller/TestController.php',
]);
}
}
Team.php:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\TeamRepository")
*/
class Team
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Poule", inversedBy="teams")
*/
private $poule;
public function getId()
{
return $this->id;
}
public function getName(): string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getPoule(): Poule
{
return $this->poule;
}
public function setPoule(Poule $poule): self
{
$this->poule = $poule;
return $this;
}
}
这是你复制粘贴的代码吗?
$team.setName("Marvels 6");
大概应该是:
$team->setName("Marvels 6");