I’m working on a small app to help learn cakephp 2.0. Its a simple task manager app.
Tables
- users
- tasks
- tasktypes
I’ve a set up a foreign key in the tasks table called ‘user_id’
As a task belongs to a user.
Now all I’m trying to do is display the tasks of a certain user and it wont work at all despite the sql query getting correct results when I tested it any help would be great.
In my taskscontroller I’ve the method;
//show the tasks of the current user
public function mytasks(){
$this->set('title_for_layout', 'Gerrys TaskManager: Display Tasks');
$this->Task->recursive = 0;
$tasks=$this->Task->find('all', array('conditions'=>array('username'=>'admin')));
$this->set('tasks', $this->paginate());
}
I’m trying to find the tasks of the user ‘admin’ or the “realted tasks” what am I doing wrong?
I suspect the problem maybe to with my models;
usermodel
/**
* hasMany associations
*
* @var array
*/
public $hasMany = array(
'Task' => array(
'className' => 'Task',
'foreignKey' => 'user_id'
)
);
task model;
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Tasktype' => array(
'className' => 'Tasktype',
'foreignKey' => 'tasktype_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
To get the tasks that belong to a user, it’s much simpler to do that in the UsersController. Of course you have to set User hasMany Task in your UserModel.
Now you can create a function, for example to view the User and it’s Tasks by id:
The Tasks should now be available in your view by
$user['tasks']. You have to pass the id in the url like: /path_to_your_app/users/view/1You can always use
debug()to see contents of an array or variable. To see what you’ve got add<?php debug($user);?>to your view.You most likely want to list any tasks with a foreach in your view, very simple example::
of course you might want to display the tasks in tables or something.
A good starting point for learning cakePHP is the Blog-Tutorial:
http://book.cakephp.org/2.0/en/getting-started.html#blog-tutorial