0

私はCakePHPが初めてなので、初心者向けのアドバイスをお願いします。

私は請求書発行アプリケーションを作成していますが、それをセットアップする方法は、請求書とアイテム用に別々のテーブル (およびモデルとコントローラー) を使用することです。請求書テーブルには、たとえば「請求書番号」、「日付」、「クライアント ID」などのデータが保持され、アイテム テーブルには、各請求書を構成する個々のレコード/アイテムが「数量」、「単価」などで格納されます。 2 つが正しく関連付けられています。

請求書の「編集」ビューを呼び出して、明らかに ID を渡すと、レコードを取得し、Items テーブルから返されたすべての関連レコードをループして、すべてが計画どおりに機能し、正しく取得および表示されます。

ただし、このビューからできるようにしたいのは、各アイテムの横にある削除ボタンをクリックして、請求書から個々のアイテムを削除できるようにすることです-理想的には確認ボックスを使用します. これはどのように正確に達成されますか?最良の方法は何ですか?ページを離れずにこれを行うには、Items コントローラーの関数を使用しますか? Invoice コントローラー/ビューからそのコントローラーの関数を呼び出すにはどうすればよいですか? または、CakePHP query() 関数などの別の方法を使用しますか?

誰かが私が非常に感謝している助けやアドバイスを提供できるように、この設定を十分に明確に説明したことを願っています.

前もって感謝します

4

1 に答える 1

0

簡単な方法:

Invoice/view.ctp foreach ループ内では、次のようにします。

//this is loose code since you have not pasted any in your question

    <?php echo $this->Html->link('Delete', array('controller'=>'Item', 'action'=>'delete', $item['Item']['id'])); ?>

次に、ItemController.php に関数を作成します。

function delete($id=NULL){
if($id){
   $this->Item->delete($id);
   $this->Session->setFlash(__('Invoice item deleted', true));
   $this->redirect($this->referer());
}
}
于 2013-01-01T13:35:09.410 に答える