Controller::fetch() avagy a View által renderelt tartalom felhasználása Controllerben

A forum.cakephp.hu alatt is felmerült a kérdés, hogyan lehet használni helpereket controllerben. Egyáltalán szükség van rájuk? Ebben a témában már kifejtettem nézetem.
Most inkább arról í­rnék, hogyan lehet controllerben felhasználni egy a renderelt view kimenetét.

A cél a következő: levélküldésnél jó lenne, ha a view által renderelt (akár text, akár html alapú) levél body részt a controllerben felhasználhatnánk a levélküldéshez. A viewnak (és a controllernek) pedig nincs fetch() metódusa (ahogyan a Smartynak van). Hát akkor most lesz.

Az ehhez szükséges kód letölthető innen. Ki kell tömörí­teni a project mappába és kész. Természetesen ha van saját app_controllered, akkor a fetch() metódust kézzel kell hozzáadnod. Használata teljesen hasonló a render() metódushoz (hiszen az lett lecsupaszí­tva).
Arra azért figyelni kell, hogy egy AdvancedView nevű képződmény is érkezik, ami felülí­rhatja a saját viewdat, ha van már ilyen. Ja, és 1.2-es cakehez használható.

Példa: van egy products controller, viewban van egy index.ctp és egy letter.ctp (ez a levélsablon), akkor küldésnél

class ProductsController extends AppController {
 function index() {
  // ...
  $out = $this->fetch(''letter'');
  // ...
 }
}

Persze ennek í­gy semmi értelme, de most nem jutott jobb eszembe.

Kategória: cakephp, php
Címke:
Közvetlen link a könyvjelzőhöz.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s