2016-11-29 21 views
0

エンティティ自体とそのリンクされたエンティティの両方を1つのビューに表示するビューを作成しました(余分な結合データとの多対多の関係) 。異なるテーブルからエンティティを削除するCakephp3リンク/ボタン

これまでのところとても良いです。今私はリンクされた各エンティティが削除リンク/ボタンを持っていることを望むでしょう。これにより、結合テーブルの結合データが削除されます。

見積もりにはアイテムがあります。したがって、ジョイント可能なものはItemsQuotesです。 Quoteコントローラにdeleteitemメソッドを追加し、Quoteの編集ビューでこのメソッドを指すようにフォームリンクを変更しました。

今、レコードが見つかりませんでした。 Join行のIDを渡して、ItemsQuotesでget($ id)を呼び出すためにTableRegistryを使用しています。

他にもいくつかのことを試しました(私の最初のアイデアはすぐにItemsQuotesコントローラに削除リンクを送信することでしたが、それは動作しないようです(ブロックビューが必要ですか?)。クロスコントローラのものか、そしてどのような私がここで間違っているのでしょうか?事前に

感謝を。

答えて

0

だから私は答えを発見し、それが他の誰かを助けるかもしれないとして、それを共有したいと思います。

キーここにはあります追加のモデルをロードする必要がある場合は、ブール値でget()を使用するというエラーが発生します。

この後には、コントローラに削除するための一般的な方法を使用することができます。

  • ドキュメント:http://book.cakephp.org/3.0/en/orm/deleting-data.html
  • コードは(あなたが削除操作が働いていた場合、実際に確認する必要がありますし、それに応じて行動する:) )

    public function deleteItem($ id = null) { $ this-> request-> allowMethod(['post'、 'deleteitem']); $ this-> loadModel( 'ItemsQuotes'); $ entity = $ this-> ItemsQuotes-> get($ id); $ result = $ this-> ItemsQuotes-> delete($ entity); return $ this-> redirect(['action' => 'index']); }

とフォームポストリンク

  • ドキュメントを使用します。http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-standalone-buttons-and-post-links
  • コード(これはフォームの間のすべてのpostLinksのために動作しません作成して、エンド - >下記参照) '; $ item [' _ joinData '] [' id ']]、[' item ']、[' item ']、確認 '=> __('よろしいですか見積もり#{0}からアイテムを削除してもよろしいですか?'、$ item [' _ joinData '] [' id '])]);

最初はこれが動作するように見えましたが、最後のアイテム(フォームが既にそこで終了していたため)でのみ機能しました。

ドキュメントは、上記の私のエラーを言及:既存フォームの内側に、この方法を使用する場合は、新しいフォームが表示ブロックに設定されているように、あなたは ブロックオプションを使用する必要があります

メインフォームの外部にレンダリングすることができます。

料理はこの上はかなり曖昧であるが、このSO質問はCakephp2とcakephp3でこれを行う方法については、うまくそれを示しています How to use FormHelper::postLink() inside of a form?

echo $this->Form->postLink(
    'Delete', 
    [ 
     'action' => 'delete', 
     $attendanceid 
    ], 
    [ 
     'block' => true, // disable inline form creation 
     'class' => 'btn btn-dark btn-sm col-md-4', 
     'confirm' => __('Are you sure you want to delete') 
    ] 
); 

乾杯

+0

ないスタイルではない理由を確認してください私はコード行の前に4つのスペースを使用していた間にコードに適用されます。 – th3penguinwhisperer

関連する問題