第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

教義實體擴展功能

教義實體擴展功能

PHP
GCT1015 2022-01-24 09:50:48
我將教義與 symfony 一起使用。我有實體User。我想為這個用戶實體設(shè)置不同的類UserApi(->toArray()有一些數(shù)據(jù)),UserSite(->toArray()與另一個數(shù)據(jù))UserAdmin(其他具體方法),該模型具有相同的數(shù)據(jù)(屬性),但功能不同我怎么能得到那個?我不需要不同的模型。我想要一個模型和幾個表示。
查看完整描述

2 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗 獲得超13個贊

使用單表繼承。

模型將由鑒別器列分隔。


查看完整回答
反對 回復(fù) 2022-01-24
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗 獲得超4個贊

如果您使用的是FOS/user-bundle您可以授予用戶角色,您可以創(chuàng)建自己的或使用預(yù)定義的(Admin 是預(yù)定義的)。 https://symfony.com/doc/2.0.x/bundles/FOSUserBundle/index.html


如果您真的想自己這樣做,您可以擁有一個模型但不同的實例化是您將您的用戶設(shè)置為是否具有角色的布爾值,然后在根據(jù)角色請求時創(chuàng)建一個新對象:


/**

 * @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")

 * @ORM\Table(name="users")

 */

class User

{


    /** @Column(name="`isApiUser`", type="boolean") */

    private $isApiUser;


    /** @Column(name="`isSiteUser`", type="boolean") */

    private $isSiteUser;


    /** @Column(name="`isAdminUser`", type="boolean") */

    private $isAdminUser;


    //....

    public function getApiUser(): ?ApiUser

    {

        return $this->isApiUser() ? new ApiUser($this) : null;

    }


    public function getSiteUser(): SiteUser

    {

        return $this->isSiteUser() ? new SiteUser($this) : null;

    }


    public function getAdminUser(): ApiUser

    {

        return $this->isAdminUser() ? new AdminUser($this);

    }

    //....


}

然后讓每個用戶對象執(zhí)行以下操作:


class ApiUser

{

    private $userName;


    public function __construct(User $user)

    {

        $this->userName = $user->getUserName();

        // Continue for whatever logic you want

    }


}

對每個用戶類型執(zhí)行相同的操作。


然后當(dāng)你想在你的控制器(或任何地方)中使用它時


class SomeController extends Controller

{

    public function indexAction()

    {


        $repository = $this->getDoctrine()->getRepository(User::class);


        $user = $product = $repository->findOneBy([

            'userName' => 'UserName', 

            'isApiUser' => true

        ]);

        $apiUser = $this->getApiUser();

    }


}


查看完整回答
反對 回復(fù) 2022-01-24
  • 2 回答
  • 0 關(guān)注
  • 183 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號