Bagaimana cara mendapatkan metode blok di controller?

8

Jalur file blok saya adalah

app\code\local\Company\Modulename\Block\Product\View\View.php

Dalam metode ini nama file adalah getId ()

Sekarang bagaimana cara memanggil metode ini di controller?

ND17
sumber

Jawaban:

13

Hai, Anda dapat memanggil blok ini dengan menggunakan kode di bawah ini di controller.

$block=$this->getLayout()->createBlock('blockPrefix/product_view_view');

$Id=$block->getId();

Blok Awalan didefinisikan di app \ code \ local \ Company \ Modulename \ Block \ Product \ View \ View.php di bawah tag

   <blocks>
        <blockPrefix><!-- guess that modulePrefix is your module block prefix -->
        <class>Company_Modulenam_Block</class>
        </blockPrefix>
    </blocks>

Lihat cara memanggil cek blok di sini

Amit Bera
sumber
12

Jika blok Anda sudah terlampir pada aksi controller Anda bisa menyebutnya seperti

$this->getBlock('block.name.here')->getId()

Jika blok tidak ada hubungannya dengan tindakan Anda saat ini, Anda dapat menyebutnya seperti:

Mage::getBlockSingleton('[module]/product_view')->getId()
Marius
sumber
2
Saya tidak yakin contoh kedua berfungsi, setidaknya tidak pada 1.9.2.1. Blok doc metode mengatakan sudah usang dan menggunakan self::helper()yang aneh dalam dirinya sendiri, karena blok dan pembantu adalah hal yang berbeda!
Robbie Averill