这是我在codeigniter中的模型代码。
<?php
$catalogo = (object) array (
"name" => "catalogo",
"url" => "url_catalogo"
);
$categorias = (object)array (
"name" => "categorias",
"titulo" => "varchar_titulo",
);
$novedades = (object)array (
"name" => "novedades",
"titulo" => "varchar_titulo",
"fecha" => "fecha_publicacion",
"descripcion" => "text_descripcion",
"categoria" => "fk_categoria"
);
$img_nov =(object) array (
"name" => "imagenes_novedades",
"url" => "url_img",
"novedad" => "fk_novedad"
);
$marcas = (object) array(
"name" => "marcas",
"titulo" => "varchar_titulo",
"url" => "url_imagen"
);
$img_slide = (object) array (
"name" => "slide_destacados",
"url" => "url_img"
);
$users = (object) array (
"db" => "users",
"user" => "username",
"pass" => "password"
);
class Model extends CI_Model
{
function __construct()
{
parent::__construct();
}
function check_user ( $username, $password )
{
global $users;
if ( $username == "" || $password == "" )
return FALSE;
$hashed_password = md5( $password );
$this->db->where($users->user, $username );
$this->db->where($users->pass, $hashed_password );
$query = $this->db->get($users->name);
if ( $query->num_rows() > 0 )
return TRUE;
return FALSE;
}
/*
* Slide de destacados de la pagina principal.
* no creo que necesitemos mas que esto
*/
function imagenes_slide ( $id = -1 )
{
global $img_slide;
if ( $id == -1 )
$this->db->where( 'id', $id);
$query = $this->db->get( $img_slide->name);
return $query->result_array();
}
function borrar_imagen_slide( $id )
{
global $img_slide;
$image_to_delete = $this->imagenes_slide( $id );
$this->db->where('id', $id);
$this->db->delete($img_slide->name);
return $image_to_delete[0][$img_slide->url];
}
function agregar_imagen_slide( $url )
{
global $img_slide;
$this->db->insert( $img_slide->name, array( $img_slide->url => $url ));
}
function cambiar_imagen_slide ( $id, $url )
{
global $img_slide;
$this->db->where( 'id', $id );
$this->db->update( $img_slide->name, array( $img_slide->url, $url ) );
}
/*
* Url del catalogo.
*/
function url_catalogo( $id = -1 )
{
global $catalogo;
if ( $id !== -1 )
$this->db->where( 'id', $id );
$query = $this->db->get( $catalogo->name );
return $query->result_array();
}
function add_catalogo ( $url )
{
global $catalogo;
$this->db->insert( $catalogo->name, array( $catalogo->url, $url) );
}
function remove_catalogo ( $id )
{
global $catalogo;
$url_catalogo = $this->url_catalogo( $id );
$this->db->where( 'id', $id );
$this->db->delete( $catalogo->name );
# Es solo que queremos el primero, ya que buscamos por id
# y este es unico.
return $url_catalogo[0][$catalogo->url];
}
function update_catalogo ( $id, $url )
{
global $catalogo;
$this->db->where( 'id', $id );
$this->db->update( $catalogo->name, array( $catalogo->url, $url ) );
}
/*
* Marcas.
*/
function get_marcas ( $id = -1)
{
global $marcas;
if( $id !== -1 )
$this->db->where( 'id', $id );
$query = $this->db->get( $marcas->name );
return $query->result_array();
}
function add_marca ( $titulo, $url )
{
global $marcas;
$n = array( $marcas->titulo => $titulo, $marcas->url => $url );
$this->db->insert( $marcas->name, $n );
}
function remove_marca ( $id )
{
global $marcas;
# Get the url to delete the image
$url_to_delete = $this->get_marcas( $id );
$this->db->where( 'id', $id );
$this->db->delete( $marcas->name );
# Es solo que queremos el primero, ya que buscamos por id
# y este es unico.
return $url_to_delete[0][$marcas->url];
}
function update_marca ( $id, $titulo = FALSE, $url = FALSE )
{
global $marcas;
$to_update = array ();
if ( $titulo != FALSE )
$to_update[$marcas->titulo] = $titulo;
if ( $url != FALSE )
$to_update[$marcas->url] = $url;
if ( $to_update !== array() )
{
$this->db->where( 'id', $id );
$this->db->update($marcas->name, $to_update );
}
}
/*
* Categorias!
*/
function get_categorias ( $id = -1 )
{
global $categorias;
if ( $id != -1 )
$this->db->where('id', $id);
$query = $this->db->get( $categorias->name );
return $query->result_array();
}
function remove_categoria ( $id )
{
global $categorias;
# Conseguimos todos los items de las categorias.
$novedades = $this->get_novedades( $id );
foreach( $novedades as $novedad )
{
$this->delete_novedad ( $novedad["id"] );
}
$this->db->where( 'id', $id );
$this->db->delete( $categorias->name );
}
function add_categoria ( $titulo )
{
global $categorias;
$data = array( $categorias->titulo, $titulo );
$this->db->insert ($categorias->name, $data);
}
function update_categoria ( $id, $titulo )
{
global $categorias;
$this->db->where( 'id', $id);
$this->db->update( $categorias->name, array( $categorias->titulo, $titulo ) );
}
/*
* Novedades ! (Esto va a ser largo)
*/
function get_novedades ( $id_categoria, $id_novedad = FALSE, $offset = FALSE )
{
global $novedades;
$this->db->where( $novedades->categoria, $id_categoria );
if ( $id_novedad !== FALSE )
$this->db->where ( 'id', $id_novedad );
if ( $offset !== FALSE )
$this->db->limit( 10, $offset );
$query = $this->db->get( $novedades->name );
return $query->result_array();
}
function add_novedad ( $titulo, $descripcion, $id_categoria )
{
global $novedades;
# Hay que crear la fecha actual.
$date = new Date();
$to_add = array (
$novedades->titulo => $titulo,
$novedades->fecha => $date,
$novedades->descripcion => $descripcion,
$novedades->categoria => $id_categoria
);
$this->db->insert( $novedades->name, $to_add );
}
function delete_novedad ( $id )
{
global $novedades;
# Y ahora sacamos de la base de datos.
$this->db->where( 'id', $id );
$this->db->delete( $novedades->name );
# Retornamos todas las urls de las imagenes.
}
function update_novedad ( $id, $titulo = FALSE, $descripcion = FALSE )
{
global $novedades;
$to_update = array();
$this->db->where ( 'id' , $id );
if ( $titulo != FALSE )
$to_update[$novedades->titulo] = $titulo;
if ( $descripcion != FALSE )
$to_update[$novedades->descripcion] = $descripcion;
if ( $to_update === array() )
return FALSE;
$this->db->update( $novedades->name, $to_update );
}
/*
* Aca van las imagenes de las novedades.
*/
function get_images_novedad ( $id_novedad, $amount = 0 )
{
global $img_nov;
if ( $amount != 0 )
$this->db->limit( $amount );
$this->db->where( $img_nov->novedad, $id_novedad );
$query = $this->db->get( $img_nov->name );
return $query->result_array();
}
function delete_imagen_novedad ( $id )
{
global $img_nov;
# Primero que nada, eliminamos todas las imagenes. :)
$images = $this->get_imagenes_novedad ( $id );
$to_delete_permantenlty = array();
foreach ( $images as $image )
{
$to_delete_permantenlty[] = $image[$img_nov->url];
}
$this->db->where( $img_nov->novedad, $id );
$this->db->delete( $img_nov->name );
return $to_delete_permantenlty;
}
}
/* End of Model class */
我想在模型中查看全局范围内的对象。我已经尝试了很多方法来做到这一点。但没有办法。
当我访问没有意义的模型时,这是错误的。
Message: Trying to get property of non-object
PD:我不想要替代品。我知道替代方案,我可以在 10 分钟内使其工作:) 我只是好奇这是否可以工作。