質問

私はこのコントローラーを持っています:

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

アクセスしたいです $something 私の.phtmlドキュメントで、これを行うにはどうすればよいですか? (または別の方法でそれを置くために:どうすればアクセスできますか $something 私の.phtmlファイルで)

役に立ちましたか?

解決

これを行うにはいくつかの方法があります。

ブロックに直接割り当てます:

$block->assign($var);

また

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

次に、次のようにPHTMLファイルにアクセスできます。

$this->myvar

Mage Registryを使用してください。

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

そして、次のように使用します。

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

他のヒント

PHTMLはブロックでレンダリングする必要があります。ブロックにはレイアウトに名前が必要です。
電話後にこれを行うことができます $this->loadLayout();

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

その後、で値を取得できます phtml のようなファイル

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

あなたが逃した場合に備えて、これを成し遂げるもう1つの方法があります

セッションを使用します

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

ソース

ブロックコントローラー内にいる場合。

class module_namespace_Block_example extends Mage_Core_Block_Template 
{
      protected $_var;

     public function __construct(){

         $this->_var = "something"; 


     }
}

次に、.phtmlファイルで

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

   ?>

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

これは、コントローラーからPHTMLファイルにデータを簡単に送信できます。

ステップ1: - 最初にモデルクラスを作成し、varien_objectから拡張します

class Namespace_Modulename_Model_Modelfilename extends Varien_Object
{

}

ステップ2: - コントラーファイルを開き、関数にコードを配置します。

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

ステップ3: - PHTMLファイルを開き、コードを配置します。

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

出力: - 'gaurav';

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top