Tôi đã đọc bài viết này:Symfony2 - doctrine: schema: cập nhật không thành công với thực thể bên ngoài của một bó (tách riêng)
http://danielribeiro.org/yes-you-can-have-low-coupling-in-a-symfony-standard-edition-application/
Tác giả nói rằng nó có thể có loại artitcture cho dự án :
src/
└── Vendor/
└── Product/
└── Bundle
└── BlogBundle/
└── ForumBundle/
└── SiteBundle/
└── Controller/
└── IndexController.php
└── Resources/
└── views/
└── index.html.twig
└── ProductSiteBundle.php
└── Entity
└── User.php
└── Repository
└── UserRepository.php
└── Service
└── UserPasswordRetrievalService.php
vì vậy tôi tiếp bài viết và kết thúc với một cái gì đó như thế này:
src/
└── Product/
└── Bundle
└── SiteBundle/
└── Controller/
└── IndexController.php
└── Resources/
└── views/
└── index.html.twig
└── ProductSiteBundle.php
└── Entity
└── User.php
Bây giờ Symfony không thể nhìn thấy user.php của tôi tác giả không đề cập đến nếu tôi có thêm bất kỳ mã thêm để thực hiện việc này, và bây giờ tôi nhận được lỗi này:
MappingException: The class 'Product\Entity\User' was not found in the chain configured namespaces OtherNameSpaces
CẬP NHẬT
Vì vậy, tôi đã xóa mã hiện tại của mình. và Did một cái gì đó như thế này:
src/
└── Product/
└── Bundle
└── SiteBundle/
└── Controller/
└── IndexController.php
└── Resources/
└── views/
└── index.html.twig
└── ProductSiteBundle.php
└── Entity
└── User.php
user.php
namespace Product\Entity;
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
}
}
và sau đó
php app/console doctrine:schema:update --force //No Metadata Classes to process.
có vẻ như Symfony là không nhận thức được thư mục đó ở tất cả. có nơi nào tôi có thể yêu cầu symfony nhìn vào bên trong thư mục đó không?
namespace của bạn trong user.php là gì? – Tib
'không gian tên Sản phẩm \ Entity' @Tib – trrrrrrm
@nifr câu trả lời là đúng trên đầu trang của nó. Bài viết của tôi, nơi bạn lần đầu tiên nghe nói về thực hành này, không giải thích (về mục đích) cách bạn làm điều đó trong nội bộ. –