我嘗試做一個管理票務系統。所以我有一個用戶模型如下:CakePHP FindById只與一個數字運行
App::uses('AppModel', 'Model');
App::uses('SimplePasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {
public $name = 'User';
public $hasMany = 'Ticket';
public $validate = array(
'username' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'Un nom d\'utilisateur est requis.'
)
),
'password' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'Un mot de passe est requis.'
)
),
'role' => array(
'valid' => array(
'rule' => array('inList', array('administrateur', 'developpeur', 'technicien', 'commercial')),
'message' => 'Merci de rentrer un rôle valide',
'allowEmpty' => false
)
)
);
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$passwordHasher = new SimplePasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);
}
return true;
}
}
當用戶輸入用戶名和密碼登錄,它涉及到管理區域應該在哪裏門票列表中的用戶。
這裏是我的模型我的票:
App::uses('AppModel', 'Model');
class Ticket extends AppModel {
public $name = 'List';
public $tablePrefix = 'tickets_';
public $belongsTo = array(
'User' => array(
'foreignKey' => 'username_id'
)
);
}
下面是我的控制器票代碼:
class TicketsController extends TicketAppController{
public function index(){
$this->request->data['Ticket']['username_id'] = $this->Auth->user('id');
$this->set('list', $this->Ticket->findById($this->data['Ticket']['username_id']));
}
}
當我把findById(5),例如我有權利票證與關聯的用戶關聯時出現。但是,不管用戶通過它的身份證顯示什麼,而不是5?
您是否嘗試過使用我發佈的答案? – Sadikhasan 2014-09-23 09:42:21