I've been trying to solve this for the past 3 days and nothing has
came up. I've researched a lot and this errors usually come up when
CakePHP can't find my model or I have some name wrong in my
relationships. Well I tried looking at everything, but still couldn't
find where the error is.
I have a User model, a Project model and a UserRole model which is the
join table used by the hasMany through relationship.

File names:

> user.php project.php user_role.php

Models:

    class UserRole extends AppModel {
    ...
    var $belongsTo = array(
                'User' => array(
                        'className' => 'User',
                        'foreignKey' => 'user_id',
                        'conditions' => '',
                        'fields' => '',
                        'order' => ''
                ),
                'Project' => array(
                        'className' => 'Project',
                        'foreignKey' => 'project_id',
                        'conditions' => '',
                        'fields' => '',
                        'order' => ''
                )
        );
    class User extends AppModel {
    ...
    var $hasMany = array(
    ...
                'UserRole' => array(
                        'className' => 'UserRole',
                        'foreignKey' => 'user_id',
                        'conditions' => '',
                        'fields' => '',
                        'order' => ''
                ),

        );
    class Project extends AppModel {
    ...
    var $hasMany = array(
    ...
                'UserRole' => array(
                        'className' => 'UserRole',
                        'foreignKey' => 'project_id',
                        'conditions' => '',
                        'fields' => '',
                        'order' => ''
                ),
        );
When I try calling any method from UserRole from User, it give me the
1064 SQL error. Any hint on where could be the problem?

Things I've tried so far: checked if UserRole is being loaded, and it
is. And I can call the UserRole functions from an element, they are
working fine.

FUNCTIONS (get_related_clients is in Users and the other is in
UserRoles):

    function get_related_clients ($id_user, $relationship_type) {
        $id_names = $this->User->UserRole->get_id_users($id_user,
$relationship_type);
        ...
    }
    function get_id_users ($id_agency = null,$type = null) {
                $params_1 = array(
                        'conditions' => array('UserRole.user_id' => $id_agency)
                );
                $user_projects = $this->UserRole->find('all',$params_1);
                $projects = array();
                for ($i = 0; !empty($user_projects[$i]); $i++) {
                        $projects[] = 
$user_projects[$i]['UserRole']['project_id'];
                }
                $clients = array();
                foreach ($projects as $project) { //pega o id de todos os 
usuarios
que sao clientes da lista de projetos anteriores
                        $params_2 = array(
                                'conditions' => array('UserRole.project_id' => 
$project,
'UserRole.role' => $type)
                        );
                        $client_project = 
$this->UserRole->find('first',$params_2);
                        if ($id_agency != 
$client_project['UserRole']['user_id'])
{ $clients[] = $client_project['UserRole']['user_id']; } // voce nao
pode ser cliente de voce mesmo
                }
                return $clients;
        }

ERROR:



     Warning (512): SQL Error: 1064: You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'get_id_users' at line 1
    DboSource::showQuery() - CORE/cake/libs/model/datasources/
dbo_source.php, line 684
    DboSource::execute() - CORE/cake/libs/model/datasources/
dbo_source.php, line 266
    DboSource::fetchAll() - CORE/cake/libs/model/datasources/
dbo_source.php, line 410
    DboSource::query() - CORE/cake/libs/model/datasources/
dbo_source.php, line 364
    Model::call__() - CORE/cake/libs/model/model.php, line 502
    Overloadable::__call() - CORE/cake/libs/overloadable_php5.php,
line 50
    UserRole::get_id_users() - [internal], line ??
    UsersController::get_related_clients() - APP/controllers/
users_controller.php, line 71
    Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 204
    Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
    Object::requestAction() - CORE/cake/libs/object.php, line 95
    include - APP/views/elements/client_list.ctp, line 2
    View::_render() - CORE/cake/libs/view/view.php, line 731
    View::element() - CORE/cake/libs/view/view.php, line 392
    include - APP/views/projects/index.ctp, line 45
    View::_render() - CORE/cake/libs/view/view.php, line 731

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to