nasıl benim cakePHP uygulama benim home.ctp bir değişken talep edebilirsiniz?

2 Cevap php

Ben değişken $ testi talep olduğunda, bu olmadan çalışıyor (görünüm modeli klasöründe app / views / bölümleri klasör, model ve denetleyici klasöründe denetleyicisi bulunan) 'bölümleri' olarak adlandırılan MVC yapısını kullanarak bir sayfa oluşturdu herhangi bir hata ..

Benim home.ctp bu değişkeni talep etmek istediğinizde, bu değişken tanımsız olduğunu söyleyerek, bir hata ile bana sağlar ..

Bunu istediğiniz herhangi bir sayfada bu değişkeni talep CakePHP'ye herhangi bir yolu var mı?

Önceden thnx!

2 Cevap

MVC yığını, size denetleyicisi verileri ile değişkenleri ayarlayın ve sonra görüntülemek için onları geçmek gerekir.

Yani örnekte, size $this->set('myvar',$item); isteyeceksiniz sizin SectionsController, ardından görünümünde, sen mümkün olacak echo $myvar.

Aksi takdirde home görünümünde mevcut olmayacak, sizin Sections denetleyicisi home() yönteminde bu ayarlamak için emin olun.

Deceze yorumuna ve DavidYell cevabı omuzları üzerinde dururken, ben onlar için almak için çalışıyoruz ne iyi bir görünüm kazımak başardınız düşünüyorum. Belki. Ne görüyorsanız o gevşek anlayışı ile ve ne var ...

Varsayılan olarak, PagesController::display() yöntemi sayfası görünümü oluşturur (home.ctp). Ben bu bahsettiğini olduğunu sanıyorum. O dedi, size bir yöntem ayarı konum değişken SectionsController Farklı bir denetleyici farklı bir yöntemle oluşturulan ana sayfanız için mevcut olmayacaktır. Tüm görünümleri için bir değişken istiyorsanız, yapabileceğiniz birkaç şey vardır:

  1. Sen config/core.php dosyasındaki değişkeni ayarlayabilirsiniz (genellikle tavsiye edilmez)
  2. Bir sabittir eğer config/bootstrap.php bunu ayarlayabilirsiniz. O, ben size bir şey dinamik olarak üretilen, kod zor değil gidiyoruz bir değer anlamına gelir. Eğer bir sabiti olarak değişken oluşturmak farketmez.
  3. Bir beforeFilter() veya beforeRender() stilini AppController in ayarlayabilirsiniz. Özel denetleyicileri (Eğer protokolünü takip ettik varsayarak) Tüm AppController devralır. Eğer bu yolu seçerseniz, cake/libs/controller/app_controller.php bir kopyasını yapmak ve app/ dizine yerleştirebilirsiniz.

Bunlar Ben onları anlıyorum olarak sizin ihtiyaçlarınıza en uygun olacağını düşünüyorum yolu vardır.