如何获得具有一对多关系的表值zend framework 1.12&doctrine

时间:2018-09-01 07:48:22

标签: php zend-framework doctrine-orm zend-form

我有一个使用zend 1.12框架和理论的项目设置。

我的数据库中有两个表,并通过以下查询创建了它们:

create table `users` (
  `id` int unsigned not null auto_increment,
  `name` varchar(100) not null,
  primary key(`id`)
);

create table `phone_numbers` (
  `id` int unsigned not null auto_increment,
  `user_id` int unsigned not null,
  `phone_number` varchar(25) not null,
  index pn_user_index(`user_id`),
  foreign key (`user_id`) references users(`id`) on delete cascade,
  primary key(`id`)
);

如果您在该查询中注意到,我已使用外键作为用户ID。

我的控制器中包含以下代码:

 $phoneNumberService = new PhoneNumberService();
$details = $phoneNumberService->findAll();

$this->view->userList = $details;

我的服务中包含以下代码

 public function findAll() {
        return $this->_phoneNumberDao->findAll();
    }

我的DAO中包含以下代码:

 /**
     * Method to find all data
     */
    public function findAll() {

        return parent::findAll();

    }

我有两个实体:PhoneNumberEntity和UsersEntity

在查看文件中,我有以下代码:

<?php foreach ($this->userList as $list): ?>
            <tr>
                <td><?php echo $list->getId(); ?></td>
                <td><?php echo $list->getdealComments(); ?></td>
                <td><?php echo $list->getphoneNumber(); ?></td>
            </tr>
<?php endforeach; ?>

查询是我想在视图页面中显示phone_numbers表中的所有条目。

以下是PhoneNumberEntity文件中的代码:

<?php

/**
 * Entity for Phone number
 *
 * @author 
 */

/**
 * @Entity
 * @Table(name="phone_numbers") 
 * @HasLifecycleCallbacks  
 */
class PhoneNumberEntity {

    /**
     * This is the primary 
     * 
     * @Id 
     * @Column(type="integer", name="id")
     * @GeneratedValue(strategy="AUTO")     * 
     * @var integer 
     */
    private $id;

    /**
     * @ManyToOne(targetEntity="UsersEntity", fetch="LAZY", inversedBy="PhoneNumber")
     * @JoinColumn(name="user_id", referencedColumnName="id") 
     * 
     * @var integer
     */
    private $userId;

    /**
     * @Column(type="string", name="phone_number")
     * 
     * @var string 
     */
    private $phoneNumber;



    /**
     * Gets Id
     * 
     * @return integer 
     */
    function getId() {
        return $this->id;
    }

    /**
     * Gets userId
     * 
     * @return integer
     */
    function getUserId() {
        return $this->userId;
    }

    /**
     * Gets phone number
     * 
     * @return string 
     */
    function getPhoneNumber() {
        return $this->phoneNumber;
    }



    /**
     * Sets id
     * 
     * @param integer $id 
     */
    public function setId($id) {
        $this->id = $id;
    }

    /**
     * Sets id
     * 
     * @param integer $userId 
     */
    public function setUserId($userId) {
        $this->userId = $userId;
    }



    /**
     * Sets phone
     * 
     * @param string $phoneNumber 
     */
    function setPhoneNumber($phoneNumber) {
        $this->phoneNumber = $phoneNumber;
    }

}

以下是用户实体文件中的代码:

<?php

/**
 * Entity for User
 *
 * @author 
 */

/**
 * @Entity
 * @Table(name="users") 
 * @HasLifecycleCallbacks  
 */
class UsersEntity {

    /**
     * This is the primary 
     * 
     * @Id 
     * @Column(type="integer", name="id")
     * @GeneratedValue(strategy="AUTO")     * 
     * 
     * @var integer 
     */
    private $id;

    /**
     * @Column(type="string", name="name")
     * 
     * 
     * 
     * @var string 
     */
    private $name;

    /**
     * @OneToMany(targetEntity="PhoneNumberEntity", mappedBy="user")
     * 
     * @var PhoneNumberEntity 
     */
    protected $dealComments;


    /**
     * Gets Id
     * 
     * @return integer 
     */
    function getId() {
        return $this->id;
    }

    /**
     * Gets name
     * 
     * @return string 
     */
    function getName() {
        return $this->name;
    }

    /**
     * Sets id
     * 
     * @param integer $id 
     */
    public function setId($id) {
        $this->id = $id;
    }

    /**
     * Sets name
     * 
     * @param string $name 
     */
    function setName($name) {
        $this->name = $name;
    }



}

请说明如何显示此数据。任何帮助是极大的赞赏。提前致谢。任何人都可以帮忙。

0 个答案:

没有答案