当我使用其他表的数据显示在cakephp中时,如何在表中保存数据?

如何解决当我使用其他表的数据显示在cakephp中时,如何在表中保存数据?

| 抱歉,如果我的问题含糊不清,我试图保持尽可能简单,那么我在cakePHP中使用以下控制器:
var $uses = array(\'Client\',\'Ticket\',\'Userseequeue\',\'Queue\',\'Task\',\'User\');
var $useTable = false;

function index() {
    $clientsResult = $this->Client->find(\'all\');
    $userSeeQueuesResult = $this->Userseequeue->find(\'all\',array(\'conditions\' => array(\'Userseequeue.user_id\' => \'1\') ) );
    $ticketsResult = $this->Ticket->find(\'all\');
    $queuesResult = $this->Queue->find(\'all\');
    $tasksResult = $this->Task->find(\'all\',array(\'group\' => array(\'Task.ticket_id\',\'Task.queue_id\') ) );
    $usersResult = $this->User->find(\'all\');
    $this->set(compact(\'tickets\',\'userSeeQueues\',\'clients\',\'queuesResult\',\'tasksResult\',\'users\',\'ticketUsers\',\'ticketQueues\'));
    if (!empty($this->data)) {
        $this->Ticket->create();
        $this->Ticketsinqueue->insertData($this->data);
        if ($this->Ticket->save($this->data) && $this->Ticketsinqueue->save($this->data)) {
            $this->Session->setFlash(__(\'The ticket has been saved\',true));
            $this->redirect(array(\'action\' => \'index\'));
        } else {
            $this->Session->setFlash(__(\'The ticket Could not be saved. Please,try again.\',true));
        }
    }
}
我使用这些表在单个视图上显示信息摘要。 我需要在该视图屏幕上添加一个表单以添加其他票证。创建此表单并将其保存到表中时,我在做错什么或缺少什么? 这是我尝试创建表单的视图,以防可能有所帮助:
<div class=\"Summary index\">
<h2><?PHP __(\'Summary\');?></h2>
<?PHP echo $this->Form->create(\'Ticket\');?>
<fieldset>
    <legend><?PHP __(\'Add Ticket\'); ?></legend>
<?PHP
    echo $this->Form->input(\'Ticket.name\');
    echo $this->Form->input(\'Ticket.user_id\');
    echo $this->Form->input(\'Ticket.queue_id\');
?>
<?PHP echo $this->Form->end(__(\'Submit\',true));?>
</fieldset>
...
这将创建表单,但不会像在cakePHP创建的普通添加视图中那样,正确地填充其“关系”表中的下拉列表。当前,它使用我在此控制器中使用的所有表填充下拉列表。 如果有人能帮助我或在正确的方向上帮助我,我将不胜感激。     

解决方法

        我得到这个工作: 在创建视图变量之前,让控制器先保存数据 并将每个下拉列表的值列表另存为控制器中的变量。
var $uses = array(\'Client\',\'Ticket\',\'Userseequeue\',\'Queue\',\'Task\',\'User\');
var $useTable = false;

function index() {
    if (!empty($this->data)) {
        $this->Ticket->create();
        $this->Ticketsinqueue->insertData($this->data);
        if ($this->Ticket->save($this->data) && $this->Ticketsinqueue->save($this->data)) {
            $this->Session->setFlash(__(\'The ticket has been saved\',true));
            $this->redirect(array(\'action\' => \'index\'));
        } else {
            $this->Session->setFlash(__(\'The ticket could not be saved. Please,try again.\',true));
        }
    }
    $clientsResult = $this->Client->find(\'all\');
    $userSeeQueuesResult = $this->Userseequeue->find(\'all\',array(\'conditions\' => array(\'Userseequeue.user_id\' => \'1\') ) );
    $ticketsResult = $this->Ticket->find(\'all\');
    $queuesResult = $this->Queue->find(\'all\');
    $tasksResult = $this->Task->find(\'all\',array(\'group\' => array(\'Task.ticket_id\',\'Task.queue_id\') ) );
    $usersResult = $this->User->find(\'all\');
    $ticketUsers = $this->User->find(\'list\');
    $ticketQueues = $this->Ticket->Queue->find(\'list\');
    $this->set(compact(\'tickets\',\'userSeeQueues\',\'clients\',\'queuesResult\',\'tasksResult\',\'users\',\'ticketUsers\',\'ticketQueues\'));
}
现在,我的视图列出了我创建的控制器变量的值:
<div class=\"Summary index\">
<h2><?php __(\'Summary\');?></h2>
<?php echo $this->Form->create(\'Ticket\');?>
<fieldset>
    <legend><?php __(\'Add Ticket\'); ?></legend>
<?php
    echo $this->Form->input(\'Ticket.name\');
    echo $this->Form->input(\'Ticket.user_id\',array(\'options\' => array($ticketUsers),\'empty\' => \'None\'));
    echo $this->Form->input(\'Ticket.queue_id\',array(\'options\' => array($ticketQueues)));
?>
<?php echo $this->Form->end(__(\'Submit\',true));?>
</fieldset>
...
有了这个,我可以有一个表格来添加票证,并在一页上显示其他模型/表格的信息。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?