ビュー スクリプトからアクションを呼び出そうとすると、Action View Helper で問題が発生します。ビューは /views/scripts/home にあり、HomeController に属しており、BookController からアクションにアクセスしたいと考えています。
私の見解には次のコードがあります。
foreach ($this->books as $book) {
if (!empty($book['asin'])) {
$bookObj = $this->action('get-book-by-asin', 'book', null,
array('asin' => $book['asin']));
getBookByAsinAction() で $data 変数を返したいとします。Action View Helper呼び出しへの応答としてそれを送り返す方法は?
ビューで行うのではなく、コントローラーで $books 変数を使用してforeachを実行できるようになりましたが、ちょっと興味があります。または、将来、特定のアクションがより有用な再利用可能なコンテンツまたは「ウィジェット化された」コンテンツを生成できる場合に、Action View Helper を使用するかもしれません。
DB クエリから多くの行を取得する場合、2 つではなく foreach だけを実行する方がよいでしょうか? 結果を適切にレンダリングするために、1 つの foreach がビューにあり、コントローラーで別の foreach を実行して、本に ASIN があるかどうかを確認し、Web サービスなどを呼び出すことを検討する必要があります。これは最適なソリューションですか?
それとも、説明されている方法で Action View Helper を使用する方がよいでしょうか?