Pregunta

Estoy creando un sitio web en CakePHP y yo soy una especie de nuevo en él.No pude encontrar buenos recursos en este asunto, así que hay que ir:

Tengo tres estructura de la tabla para el registro de usuarios: Users, Addresses y Contacts.Tengo que crear una vista con la info de las tres tablas como:

Full Name:         [          ] (from Users)
Shipping Address:  [          ] (from Address)
Mobile Phone:      [          ] (from Contact)
e-Mail Address:    [          ] (from Contact)

¿Cuál es la mejor manera de lidiar con esta situación. Especialmente para el ahorro de.La creación de un nuevo Modelo para representar esto, que tendrá una save() el método en sí (tal vez una vista sql en la base de datos) Crear un Controlador para lidiar con este punto de Vista que binds o unbinds info

Aún me pregunto cómo voy a manejar tanto los contactos como van a ser 2 diferentes INSERT's

Cualquier sugerencia o recursos que se puede sacar de voy a estar contento.

¿Fue útil?

Solución

Si el uso de la última 1.2 código, echa un vistazo Modelo::saveAll en la api

por ejemplo.Su punto de vista podría ser algo como esto:

echo $form->create('User', array('action' => 'add');
echo $form->input('User.name');
echo $form->input('Address.line_1');
echo $form->input('Contact.tel');
echo $form->end('Save');

A continuación, en su controlador de Usuarios método add tendríamos algo como:

...

if($this->User->saveAll($this->data)) {
 $this->Session->setFlash('Save Successful');
 $this->redirect(array('action' => 'index'));
} else {
 $this->Session->setFlash('Please review the form for errors');
}

...

En su modelo de Usuario necesitará algo como:

var $hasOne = array('Address', 'Contact');

Espero que ayude!

http://api.cakephp.org/class_model.html#49f295217028004b5a723caf086a86b1

Otros consejos

CakePHP le permite fácilmente mantiene el enlace entre sus modelos utilizando la relación, ver http://book.cakephp.org/view/78/Associations-Linking-Models-Together para el detalle completo.A continuación, recuperar el derecho de Usuario, usted también conseguirá "gratis", su dirección y la información de contacto.

3 modelos :De Usuario, Dirección De Contacto

User hasOne Address, Contact
Address belongsTo User
Contact belongsTo User

en el modelo se define este como este :

class User extends AppModel {
var $name = 'User';
var $hasOne = array('Address','Contact');
..

Para hacer este punto de vista, usted necesita user_id campo de ind direcciones, y contactos tablas

Para usar esta en un punto de vista, simplemente llamar a un encontrar en el modelo de Usuario con un recursiva de uno (y por cierto, el controlador de usuarios sólo utiliza el modelo de Usuario).

$this->User->recursive = 1;
$this->set('user', $this->User->find('first', array('conditions'=>array('id'=>666)));

Este será el resultado de esta matriz para la vista :

array(
  'Use' => array(
     'id' => 666,
     'name' => 'Alexander'
),
  'Address' => array(
     'id' => 123,
     'zip' => 555
),
   'Contact' => array(
     'id' => 432,
     'phone' => '555-1515'
));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top