BaseController'da tanimlanmis olan bir datayi her sayfanin view'inde render edilirken tanimlama hakkinda
Merhabalar,BaseController dosyamda footerda yayinlamak icin blog datalarini cekiyorum database'den fakat her sayfada gozukmesi icin controller dosyasinda View::render dosyasinda array olarak bu datayi gondermem gerekiyor. Bunun daha kolay bir yolu var mi ?
Ornegin; 20 sayfam varsa 20 sayfa icinde bunu tanimlamam gerekiyor.
Cevaplar (2)

Altan Öztürk
PHP Developer2 yıl önce
Ben bu sorunu layout_helper adında bir helper oluşturup içerisine her yerde kullanacağım sorguları fonksiyonlar halinde base controller içerisine import ederek çözdüm farklı bir çözümü varsa bende merak ediyorum takipteyim.

NegaXY
PHP Developer7 ay önce
Ben bu işlemi şu şekilde yapıyorum.
BaseController.php :
namespace AppControllers;
use SystemKernelController;
class BaseController extends Controller
{
protected $pageData = [];
public function __construct()
{
$this->pageData['data_key'] = 'data_value';
}
}
Base Controller'da __construct ile Base Controller her çalıştığında çalışacak kod tanımlamalarını yapmış oluyorum.
Şimdi sırada Router ile tetiklenecek Controller ve Method tarafına geçersek,
HomeController.php :
namespace AppControllers;
use View;
class HomeController extends BaseController
{
public function index()
{
$this->pageData['title'] = 'title_value'; // Bu tanımlama Home içerisinden yapılıyor
View::render('index', $this->pageData); // extend edilen Base den pageData array View a gönderiliyor.
}
}
Önemli nokta HomeController'ın BaseController'dan extend edilmesi ve Base'de array data tanımlamalarını yaptığınız değişkeni $this ile Home da almak.
Cevap Yazın

developerman
2 yıl önce sordu.Çok Okunanlar
- 9014 [v2.x] Mail gönderme - SMTP connect() failed
- 5875 [v1.x] Sınırsız Kategori/Menu Bulabildiğim en iyi çözüm !
- 2314 [v1.x] Üye giriş ve kayıt olması ?
- 2309 [v1.x] TitanPhp örnek uygulamalar
- 2200 [v1.x] Sınırsız Kategori/Menu ÖNEMLİ
- 2158 [v1.x] index.php?url şeklinde kullanmadan controllere erişemiyorum.
- 1936 [v2.x] vendor/autoload hatası (kurulum)
- 1904 [v1.x] Veritabanı Kayıt Ekleme
- 1702 [v1.x] $this->load->plugin('template');
- 1599 [v1.x] fonksiyonların içinde veritabanı işlemi