Frage

Ich habe diesen Controller:

...
public function insertAction() {
    $something = 'testcase';
    $this->loadLayout();
    $this->_title($this->__("the title"));
    $this->renderLayout();
}
...

Ich möchte zugreifen $something Wie mache ich das in meinem .Phtml -Dokument? (oder um es auf andere Weise auszudrücken: Wie kann ich zugreifen? $something in meiner .phtml -Datei)

War es hilfreich?

Lösung

Es gibt ein paar Möglichkeiten, dies zu tun.

Direkt dem Block zuweisen:

$block->assign($var);

oder

$block->assign(array('myvar'=>'value','anothervar'=>true));

Dann können Sie in der PHTML -Datei wie folgt darauf zugreifen:

$this->myvar

Verwenden Sie das Magierregister:

Mage::register('custom_var', $var);

Und dann benutze es wie:

$var = Mage::registry('custom_var');

Andere Tipps

Ihr PHTML muss von einem Block gerendert werden. Der Block muss einen Namen im Layout haben.
Sie können dies nach dem Anruf tun $this->loadLayout();

$block = Mage::app()->getLayout()->getBlock('block_name_here')
if ($block){//check if block actually exists
   $block->setSomething($something);
}

Dann können Sie den Wert in der erhalten phtml Datei wie

$value = $this->getSomething();
//or 
$value = $this->getData('something');

Falls Sie die Leute verpasst haben, gibt es noch einen Weg, dies zu erledigen

Verwenden von Sitzungen

Mage::getSingleton('core/session')->setSomeSessionVar($data);// In the Controller
$data = Mage::getSingleton('core/session')->getSomeSessionVar(); // In the View;

Quelle

Wenn Sie in Ihrem Blockcontroller sind.

class module_namespace_Block_example extends Mage_Core_Block_Template 
{
      protected $_var;

     public function __construct(){

         $this->_var = "something"; 


     }
}

Dann in Ihrer .phtml -Datei

   <?php 
        $variable = $this->_var;
        echo $variable; // prints "something"

   ?>

   <h1>You're inside your phtml file...... <?php echo $variable;  //prints "something" ?></h1>

Dies ist sehr einfach zu senden, dass Daten von Controller an die PHTML -Datei gesendet werden.

SCHRITT1:- Erstellen Sie zunächst die Modellklasse und erstreckt sich von VIVIEN_OBJECT

class Namespace_Modulename_Model_Modelfilename extends Varien_Object
{

}

STEP2:- Öffnen Sie nun die ContollerFile und legen Sie den Code in die Funktion ein.

$name='gaurav';
$this->loadLayout();
Mage::getSingleton('Modulename/Modelfilename')->setData('name',$name);
$this->renderLayout();

Schritt 3:- Öffnen Sie die PHTML-Datei und setzen Sie den Code ein.

echo $name=Mage::getSingleton('Modulename/Modelfilename')->getData('name');

Ausgabe:- 'Gaurav';

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top