带有cakePHP的票务系统

时间:2013-02-25 06:30:33

标签: php cakephp cakephp-2.2

我正在尝试为我们公司的IT相关问题创建一种票证类型的系统。

此故障单系统应如下工作:

  • 用户登录并提交“IT查询”
  • 使用唯一ID保存查询,该ID会邮寄给用户。
  • 查询将邮寄给IT部门。
  • 记录对查询的响应,当用户查看查询时,可以看到所有这些响应。

我在最后一颗子弹上遇到了一些问题。

由于我正在使用两个数据库(it_queries具有唯一的id ticket_id,而it_responses具有外部id ticket_id),因此我必须相互拥有3个视图才能实现此目的。

我有以下几点: What I have in mind

我如何才能实现这一目标,还是有更简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

正如Dipesh所说,你应该正确地关联表格,以便更容易,更快捷。另外,我建议您使用CakePHP naming conventions,不仅用于控制器,模型和视图,还用于DataBase设计。 它将为您节省大量的工作和头痛。 您可以使用cake bake functionality

除此之外,我没有看到使用不同观点的重点。您可以使用元素(view / eElements /),但我会更简单。

您应该考虑到一个控制器可以(并且可能会)使用多个模型。这样说,view中的ticketController操作也可以调用it_responses表并检索另一个数组中的数据。

例如:

class TicketsController extends AppController {
    //using the It_response model
    var $uses = array('Ticket' , 'It_response');


    public function view($id){
        $ticketData = $this->Ticket->find('all', array('conditions' => array('Ticket.id' => $id));

        $responsesData = $this->It_response->find('all', array('conditions' => array('It_response.ticket_id' => $id));

        //setting the variables in the ticket view.
        $this->set('ticket', $ticketData);
        $this->set('responses', $responsesData);

    }

无论如何,如果您的故障单正确链接到响应模型,您只需要执行一个包含响应数组的查询。

答案 1 :(得分:0)

要对此进行存档,您需要在模型中定义所有正确的关联。

根据您的问题,我猜您的ItRequest模型与具有hasMany关系的ItResponse相关,因此您的Response表与Request Table具有一对一的关系。

然后定义它,然后在控制器内查询它并根据需要在视图文件中显示它。

cakephp model association (view)

CakePHP model JOINS, missing fields

Retrieving Data From two tables that are associated with a forign key in CakePhp