因爲我不想使用另一個外部捆綁包,我嘗試用另一種方式解決問題,然後我想出了這個終於可用的解決方案。
我以這種方式擴展FOS用戶實體:
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="fos_user")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"user" = "User","subscriber" = "Subscriber", "client" = "Client", "company" = "Company"})
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
*
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
然後在每個子類(用戶,客戶和公司),我擴展這個子類太(3層次結構計數FOS用戶)。我粘貼下面其中之一(同爲其他人):
use AppBundle\Entity\User as MyUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\ClientRepository")
* @ORM\Table(name="client")
*/
class Client extends MyUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
希望這將幫助任何人......
不錯的辦法。我們如何爲不同的用戶提供不同的訪問控制? – TRiNE