Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[SOLUCIONADO] Convensiones en laravel4 campo id por defecto

Estas en el tema de Convensiones en laravel4 campo id por defecto en el foro de Frameworks y PHP orientado a objetos en Foros del Web. una pregunta he estado leyendo sobre laravel4 y sus convenciones como nombres de clases en sigular la cual se corresponde con una tabla en la ...
  #1 (permalink)  
Antiguo 04/01/2014, 14:59
Avatar de rocha7778  
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 11 años, 6 meses
Puntos: 1
Convensiones en laravel4 campo id por defecto

una pregunta he estado leyendo sobre laravel4 y sus convenciones como nombres de clases en sigular la cual se corresponde con una tabla en la base de datos con el mismo nombre pero en plural entre otros.


Pero hay una que me genera mucha duda.

si no tengo el campo id por defecto en una tabla, sino id_user

el metodo $user = User::find(1);

arroja un error diciendo que la columna id no existe,

existe una manera de utilizar este metodo aun cuando el compo id esta renombrado com oid_user ?

mil gracias.
  #2 (permalink)  
Antiguo 04/01/2014, 15:17
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Convensiones en laravel4 campo id por defecto

Te sugiero que pases por la doc de la herramienta que estas utilizando http://laravel.com/docs/eloquent#basic-usage(busca primaryKey)
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 04/01/2014, 16:44
Avatar de rocha7778  
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Convensiones en laravel4 campo id por defecto

estuve leyendo la documentación, aunque esta da la opción para sobrescribir la convención del id pero solo sirve para identificar una llave primaria a nuestro gusto.

pero al parecer el método find(1), siempre busca una columna llamada id.

gracias por tu colaboración.
  #4 (permalink)  
Antiguo 04/01/2014, 17:27
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Convensiones en laravel4 campo id por defecto

Desconozco el ORM pero me parece extraño que sean tan pobre en algo tan basico y por lo que veo segun el codigo fuente deberia buscar por lo que tengas definido en primaryKey

https://github.com/laravel/framework...uilder.php#L59
https://github.com/laravel/framework...odel.php#L1755
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 04/01/2014, 17:57
Avatar de rocha7778  
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Convensiones en laravel4 campo id por defecto

Amigo el codigo es muy claro deberia devolver el primarykey no importa
como se llame si nosotros lo estipulamos asi.

creo que estudiare bien el codigo para ver si tengo algún error,

Código PHP:
NoteEloquent will also assume that each table has a primary key column named idYou may define a primaryKey property to override this convention 

mil gracias por tu atencion.
  #6 (permalink)  
Antiguo 04/01/2014, 18:45
Avatar de rocha7778  
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Convensiones en laravel4 campo id por defecto

amigo ya di con la solucion la publicare por si otros la necesitan


Código HTML:
Note: Eloquent will also assume that each table has a primary key column named id. You may define a primaryKey property to override this convention. Likewise, you may define a connection property to override the name of the database connection that should be used when utilizing the model.
Código PHP:

lass Cliente 
extends Eloquent implements UserInterfaceRemindableInterface {

    
/**
     * The database table used by the model.
     *
     * @var string
     */
    
protected $table 'cliente';
    protected  
$primaryKey='id_cliente';

solo se debe sobreescribir la variable primaryKey en el modelo
para asi poder utilizar el medoto find(1), sin nigun problema.

Etiquetas: campo, defecto, laravel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:40.