Memanggil Pengontrol Lain di Symfony. Panduan Langkah demi Langkah dengan Contoh

Di Symfony, Anda dapat memanggil controller lain dengan menggunakan metode forward() yang disediakan oleh kelas dasar Controller. Metode forward() membutuhkan dua argumen. yang pertama adalah pengontrol yang ingin Anda panggil, dan yang kedua adalah metode tindakan di dalam pengontrol itu

Contoh 1. Dalam pengontrol yang disebut "DefaultController", Anda dapat memanggil pengontrol lain yang disebut "OtherController" dan tindakan "indeks" seperti ini

return $this->forward('App\Controller\OtherController::index');

Contoh 2. Dalam pengontrol yang disebut "DefaultController", Anda dapat memanggil pengontrol lain yang disebut "OtherController" dan tindakan "tampilkan" dengan meneruskan array parameter sebagai argumen kedua seperti ini

return $this->forward('App\Controller\OtherController::show', array('id' => $id));
_

Catatan. Pengontrol harus ada di direktori pengontrol di folder src dan metode tindakan harus bersifat publik

Cara symfony memanggil pengontrol lain dengan Contoh
// OtherController::fancy($name, $color) will be executed
public function myAction($name)
{
    $response = $this->forward(
    	'App\Controller\OtherController::fancy',
    	array(
      		'name'  => $name,
        	'color' => 'green',
    	)
    );
    // .. further modify the response or return it directly
    return $response;
}

Bagaimana cara melayani kelas sebagai layanan di Symfony?

Cara yang benar di Symfony jika melayani kelas sebagai layanan. Buka file layanan Anda di app/config/services. yml dan tambahkan yang berikut di sana, pastikan Anda menambahkan pengontrol yang perlu Anda layani. Sekarang di pengontrol kami yang lain yang membutuhkan layanan pengontrol ini, kami dapat memanggil dengan perintah ini

Bagaimana cara menekan output dari perintah Symfony?

Jika Anda ingin menekan output dari perintah yang dieksekusi, berikan NullOutput sebagai argumen kedua ke $command->run (). Perhatikan bahwa semua perintah akan berjalan dalam proses yang sama dan beberapa perintah bawaan Symfony mungkin tidak berfungsi dengan baik dengan cara ini

Bisakah saya memanggil fungsi pengontrol dari pengontrol lain?

Anda tidak boleh (AFAIK) memanggil fungsi pengontrol dari pengontrol lain. Sepertinya kode pengontrol Anda harus dibagikan, dan untuk inilah layanan itu. Jadi buat satu dan gunakan seperti yang disarankan Mert. Karena layanan Symfony sekarang bersifat privat secara default, akan lebih mudah jika hanya menyuntikkan pengontrol yang Anda inginkan

Apakah MVC menjadi perhatian di Symfony?

selama Symfony memiliki hal-hal seperti " { { render (controller (. )) }}"" MVC seharusnya tidak menjadi perhatian Jika Anda tidak ingin mendefinisikan kelas sebagai layanan, karena rasanya bukan praktik yang baik bagi saya dan @Qoop mengutip Fabien yang mengatakan hal yang sama, Anda bisa

Bagaimana cara memanggil pengontrol dari perintah Symfony?

Jika tindakan Anda memerlukan permintaan, maka. $permintaan = Symfony\Component\HttpFoundation\Request. createFromGlobals();

Bagaimana Anda memanggil pengontrol lain dari pengontrol lain?

Cara Memanggil Fungsi Pengontrol di Pengontrol Lain di. .
Contoh 1. PostController. php. gunakan App\Http\Controllers\OtherController; . .
Contoh 2. PostController. php. kelas PostController meng-extend Controller. .
Contoh 3. PostController. php. kelas PostController meng-extend Controller

Apa itu pengontrol di Symfony?

Di Symfony, pengontrol adalah biasanya metode kelas yang digunakan untuk menerima permintaan, dan mengembalikan objek Respons . Saat dipetakan dengan URL, pengontrol dapat diakses dan responsnya dapat dilihat. Untuk memfasilitasi pengembangan pengontrol, Symfony menyediakan AbstractController.