0

ユーザーがクエリを追加できるアプリがあります(ItQueries / add)。IT 部門がクエリ (ItQueries/view/1) を表示すると、コメント/応答できるはずです。私がこれまでやってきたことは。

IT クエリのビューで、IT 部門が応答を追加する要素を呼び出しました。以下は要素を呼び出す方法です

<?php echo $this->Element('/ItQueryResponses/add'); ?>

ItQueryResponses の送信時に、アクションが ItQueris のビュー ページにリダイレクトされ、その下にコメントが表示されるようにしたいと考えています。

これが私の要素のコードです

<?php echo $this->Form->create('ItQueryResponse', array('action' => 'add')); ?>
<?php echo __('Add It Query Response'); ?>
<?php
echo $this->Form->input('it_query_id');
echo $this->Form->input('response');
?>
<?php echo $this->Form->end(__('Submit')); ?>

ItQueryResponseController の追加関数は次のとおりです。

public function add() {
if ($this->request->is('post')) {
$this->ItQueryResponse->create();
if ($this->ItQueryResponse->save($this->request->data)) {
$this->Session->setFlash(__('The it query response has been saved'));
$this->redirect(array('Controller' => 'ItQueryResponses', 'action' => 'view'));
} else {
$this->Session->setFlash(__('The it query response could not be saved. Please, try again.'));
}
}
}

ItQueryResponses ビューのコードは次のとおりです

<h2><?php  echo __('It Query Response'); ?></h2>
<dl>
<dt><?php echo __('Response'); ?></dt>
<dd>
<?php echo h($itQueryResponse['ItQueryResponse']['response']); ?>
        &nbsp;
</dd>
<dt><?php echo __('Created'); ?></dt>
<dd>
<?php echo h($itQueryResponse['ItQueryResponse']['created']); ?>
        &nbsp;
</dd>
</dl>

以下は私のItQueriesControllerです

<?php
App::uses('AppController', 'Controller');

class ItQueriesController extends AppController {

/** index method

public function index() {
$this->ItQuery->recursive = 0;
$this->set('itQueries', $this->paginate());
}

/** view method

public function view($id = null) {
$this->ItQuery->id = $id;
if (!$this->ItQuery->exists()) {
throw new NotFoundException(__('Invalid it query'));
}

$this->set('itQuery', $this->ItQuery->read(null, $id));   
}

/** メソッドを追加

public function add() {
if ($this->request->is('post')) {
$this->ItQuery->create();
if ($this->ItQuery->save($this->request->data)) {
$this->Session->setFlash(__('The it query has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The it query could not be saved. Please, try again.'));
}                       
}
$hrEmployees = $this->ItQuery->HrEmployee->find('list');
$this->set(compact('hrEmployees'));
}

/**OTHER CODE*/
}

ItQueryResponses ビューにリダイレクトして、ビューの下に ItQueryResponse を配置する方法を誰かに教えてもらえれば、それは素晴らしいことです。

4

1 に答える 1

0
/** view method **/

public function view($id = null) {
$this->ItQuery->id = $id;
if (!$this->ItQuery->exists()) {
throw new NotFoundException(__('Invalid it query'));
}

// debugging
$this->ItQuery->recursive = '1';
pr($this->ItQuery->find('all'));
//end debugging

$this->set('itQuery', $this->ItQuery->read(null, $id));   
}

次に、ビューに移動して出力を表示します。

次のようになります。

Array(
   ItQuery => array(
      id => 1
      ...
   )
   ItQueryResponse => array(
      0 => array(
          id =>3
          response => 'some response'
          ...
      )
      1 => array(
          id =>4
          response => 'some other response'
          ...
      )
   )
)
于 2013-02-22T11:31:26.670 に答える