簡體   English   中英

Symfony2多對一獲取空參數

[英]Symfony2 many to one get null parameter

我與“ login_log”,“ user_info”和“ user_account”具有多對一關系。 這是三個實體的摘要。

class UserInfo extends Entity {

    /**
     * @ORM\Column(name="user_id", type="integer")
     * @ORM\Id
     */
    protected $userId;

    /**
     * @ORM\Column(name="true_name", type="string", length=20)
     */
    protected $trueName;

    ...
}



class UserAccount extends Entity {

    /**
     * @ORM\Column(name="user_id", type="integer")
     * @ORM\Id
     */
    protected $userId;

    /**
     * @ORM\Column(name="user_name", type="string", length=20, nullable=true)
     */
    protected $userName;

    ...
}




class LoginLog extends Entity {

    /**
     * @ORM\Column(name="log_id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $logId;

    /**
     * @ORM\ManyToOne(targetEntity="UserInfo")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
     */
    protected $userInfo;

    /**
     * @ORM\ManyToOne(targetEntity="UserAccount")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
     */
    protected $userAccount;

    /**
     * @ORM\Column(name="user_id", type="integer")
     */
    protected $userId;

    ...
}

當我想添加登錄日志時:

$log = new LoginLog();
$log->setUserId(11);
$em->persist($log);
$em->flush();

但是在symfony profiler中,我得到了這些查詢:

INSERT INTO login_log (user_id) VALUES(?) 
Parameters: { 1: null}  

為什么第一個參數為空!

這沒有意義:

    /**
     * @ORM\ManyToOne(targetEntity="UserAccount")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
     */
    protected $userAccount;

    /**
     * @ORM\Column(name="user_id", type="integer")
     */
    protected $userId;

它們都使用相同的列名,擺脫了userId屬性,並對userAccount使用了setter。

現在,您要設置一件事,而在進行查詢時,該學說會嚇跑,而使用另一件事。

明白我的意思嗎?

$log = new LoginLog();
$log->setUserAccount($user);  // $user beeing an actual user, not an ID
$em->persist($log);
$em->flush();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM