Hola buenas a todos
estoy con un proyecto en el que tengo la siguiente bbdd:
usuario es amigo de usuarios (N:M)
usuario crea evento (1:N)
usuario acude a evento (N:M)
usuario crea grupo (1:N)
usuario pertenece a grupo (N:M)
Estoy tratando de crear una vista para la creacion de un evento al cual tengo que invitar a usuarios que sean contactos mios, el problema llega en que no se acceder a esos contactos, solo a todos los contactos.
les dejos los codigos:
Event model
<?php
class Event extends AppModel {
//relacion con user un evento es creado por un usuario
public $belongsTo = array(
'User' => array('className' => 'User',
'foreingKey' => 'user_id'
)
);
//relacion n:m con usuarios asisten a muchos eventos
public $hasAndBelongsToMany = array(
'Users' => array(
'className' => 'User',
'joinTable' => 'events_users',
'foreingKey' => 'event_id',
'associationForeingKey' => 'user_id',
)
);
User model
<?php
App::uses('AuthComponent', 'Controller/Component');
class User extends AppModel {
//relacion con eventos un usuario crea 0 o varios eventos
public $hasMany = array(
'Event' => array('className' => 'Event',
'foreingKey' => 'user_id'
),
'User' => array(
'className' => 'User_User',
'foreingKey' => 'user_id'
)
);
user_user model
<?php
class User_User extends AppModel {
public $belongsTo = array(
'User' => array('className' => 'User',
'foreingKey' => 'user_id'
)
);
}
event controller
<?php
class EventsController extends AppController {
public $helpers = array('Paginator');
public $components = array(
'DebugKit.Toolbar',
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'login'),
'authError' => 'You must be logged in to view this page.',
'loginError' => 'Invalid Username or Password entered, please try again.',
'authenticate' => array(
'Form' => array(
'fields' => array(
'username' => 'email', //Default is 'username' in the userModel
'password' => 'password' //Default is 'password' in the userModel
)
)
)
));
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('login', 'add');
}
public function listarTodos() {
$options = array('conditions' => array('user_id' => $this->Auth->user('id')));
$this->set('eventos', $this->Event->find('all', $options));
}
public function listarProximos() {
$options = array('conditions' => array('user_id' => $this->Auth->user('id'), 'fecha >=' => date('Y-m-d')));
$this->set('eventos', $this->Event->find('all', $options));
}
public function add() {
if ($this->request->is('post')):
$this->request->data['Event']['user_id'] = $this->Auth->user('id');
$this->Event->create();
if ($this->Event->save($this->request->data)):
$this->Session->setFlash('Event guardado');
$this->redirect(array('controller' => 'users', 'action' => 'index'));
endif;
endif;
$users = $this->User_User->find('all',array('conditions' => array('OR' => array('User_User.user_id' => $this->Auth->user('id') , 'User_User.user_id1' => $this->Auth->user('id')))));
$this->set(compact('users'));
}
espero que puedan ayudarme
saludos
pd: el error que me sale por el momento es en la lina del controlador $users = $this->User_User->Find('all',....
Error:
Call to a member function find() on a non-object