添加书籍x类别PHP

时间:2014-03-02 15:31:44

标签: php class oop

基本上我需要创建一个方法addLibrosXCategoria(Libreria,codCategoria),这意味着addBooksXCategory(Libery,codCategory)。我已经创建了我的Books类和我的Category类,并用我编写的书填充了它。基本上我需要的是在Category类中填充属性listaLibros和我在dbListaLibros下创建的那些(dbBooksList)。我该怎么做?基本上在属性listaLibros(booksList)

下按类别保存书籍

所以我得到了我的班级书籍和类别(西班牙语的Libros和Categoria)

CLASS BOOKS     

class Libro {

var $codigo;
var $categoria;
var $titulo;
var $autor;
var $editorial;
var $imagen;

public function __construct($cod, $cat, $tit, $aut, $edi, $ima) {
    $this->codigo = $cod;
    $this->categoria = $cat;
    $this->titulo = $tit;
    $this->autor = $aut;
    $this->editorial = $edi;
    $this->imagen = $ima;
}

function getCodigo() {
    return $this->codigo;
}

function getCategoria() {
    return $this->categoria;
}

function getTitulo() {
    return $this->titulo;
}

function getAutor() {
    return $this->autor;
}

function getEditorial() {
    return $this->editorial;
}

function getImagen() {
    return $this->imagen;
}
}

CLASS CATEGORY     

class Categoria {

var $nombre;
var $codigo;
var $listaLibros;

public function __construct($nom, $cod) {
    $this->nombre = $nom;
    $this->codigo = $cod;
}

function getNombre() {
    return $this->nombre;
}

function getCodigo() {
    return $this->codigo;
}
}

书籍清单

 <?php

require 'clases/Libro.php';

class dbListaLibros {
    var $db;

    public function __construct() {
        $this->db = array();

        $libro1 = new Libro(00001, "Cocina", "Comiendo", "Juancito", "Test", "../images/image_01.jpg");
        $libro2 = new Libro(00002, "Computacion", "Programacion", "Maria", "test", "../images/image_01.jpg");
        $libro3 = new Libro(00003, "Redes", "Cisco", "Ramon", "test","../images/image_01.jpg");
        $libro4 = new Libro(00004, "Electronica", "Circuitos", "Jose", "test","../images/image_01.jpg");

        array_push($this->db, $libro1, $libro2, $libro3, $libro4);
    }

    function getLibros() {

        echo"<table border=1>";
        echo"<tr>";
             echo"<td>Codigo</td>";
             echo"<td>Categoria</td>";
             echo"<td>Nombre</td>";
             echo"<td>Autor</td>";
             echo"<td>Editorial</td>";
             echo"<td>Imagen</td>";
        echo"</tr>";

        foreach ($this->db as $libros) {
            echo"<tr>";
            foreach ($libros as $valor) {
                echo"<td>$valor <br/></td>";
            }
            echo"</tr>";

        }

        echo"</table>";
        echo"<ul>";
    }
}

类别清单     

require 'clases/Categoria.php';

class dbCategorias {
    var $db;

    public function __construct() {
        $this->db = array();

        $cate1 = new Categoria("FO001", "Fotografía");
        $cate2 = new Categoria("CO001", "Cocina");
        $cate3 = new Categoria("JA001", "Jardinería");
        $cate4 = new Categoria("NO001", "Novelas");
        $cate5 = new Categoria("HI001", "Historia");
        $cate6 = new Categoria("CI001", "Ciencia");
        $cate7 = new Categoria("TE001", "Tecnología");

        array_push($this->db, $cate1, $cate2, $cate3, $cate4, $cate5, $cate6, $cate7);
    }


}

1 个答案:

答案 0 :(得分:0)

这可以在您的控制器逻辑(或接收用户输入的脚本)中完成。您可以将属性“libros”添加到Category类中,该类将是Book对象的数组。然后,您可以将以下方法添加到类别类中:

function getBooks() {
    return $this->libros;
}

function addBook(Libro $libro) {
    $this->libros[] = $libro;
}

我建议研究Data Mapper模式,以便为您的应用程序寻找长期解决方案。谷歌“PHP Mapper模式”应该返回大量的例子。