Zend Framework Model in Module Tablegateway pattern problem

Bu yazı 2014 yılında yazıldı. Bazı bilgiler ve araçlar güncelliğini yitirmiş olabilir.

Merhabalar, Zend Framework 1 Module yapısında model’i örnekleyip sorgu yaptığımda tablo adını bulamıyordu. Bildiğiniz gibi Zend’te Table Data Gateway patternini kullanıyor ve model dosyasını autoload ediyoruz. Bu patterne göre dosya, class ve tablo ismi aynı olmalı.

Module yapısında şöyle bir model oluşturdum ; proje/application/modules/default/models/User.php

class ismi ise şöyle;

<?php 
    class Default_Model_User extends Zend_Db_Table

daha sonra Controller içerisinde şu şekilde örnekledim;

$user = new Default_Model_User();

Model içerisinde $this->fetchAll gibi metodları kullandığınızda size veriatabanında Default_Model_User isimli tabloyu bulamadığına dair bir hata mesajı dönderecektir. Çözümü ise gayet basit model içerisinde $_name özelliğine tablo ismini tanımladığınızda problem kalmayacaktır 🙂 Örneğin;

<?php 
   class Default_Model_User extends Zend_Db_Table
   {
        protected $_name = 'user';

İyi örneklemeler (:

Mustafa Toker

Backend mühendisi ve ekip lideri. JVM, Spring Boot, Oracle ve yapay zekâ destekli yazılım geliştirme üzerine sahadan notlar yazıyorum.