EDIT
Add this line to your asset model
public $primaryKey = 'id';
and make sure that $primaryKey is not defined somewhere else in the model.
Pregunta
I have relationships set up by the built in CakePHP build function. First, my tables:
assets
id | company_id | group_id | location_id | item_id | invoice_id | item_number | description | purchase_value | purchase_date | barcode | colour | picture | created | modified
repairs
id | company_id | asset_id | invoice_id | created | modified
My relationship in my asset
model looks like this:
public $hasMany = array(
'Repair' => array(
'className' => 'Repair',
'foreignKey' => 'asset_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
And in my repair
model, like this:
public $belongsTo = array(
'Asset' => array(
'className' => 'Asset',
'foreignKey' => 'asset_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
However, when I try to view an asset, it shows this error:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Asset.asset_id' in 'field list'
SQL Query: SELECT `Asset`.`id`, `Asset`.`company_id`, `Asset`.`group_id`, `Asset`.`location_id`, `Asset`.`item_id`, `Asset`.`invoice_id`, `Asset`.`item_number`, `Asset`.`description`, `Asset`.`purchase_value`, `Asset`.`purchase_date`, `Asset`.`barcode`, `Asset`.`colour`, `Asset`.`picture`, `Asset`.`created`, `Asset`.`modified`, `Asset`.`asset_id` FROM `asset_register`.`assets` AS `Asset` WHERE `Asset`.`company_id` = 1 AND `Asset`.`asset_id` = (4)
Anyone know what the issue is?
EDIT TO UPDATE
My find statement is the plain CakePHP find statement.
$options = array('conditions' => array('Asset.' . $this->Asset->primaryKey => $id));
$this->Asset->recursive = 1;
$this->set('asset', $this->Asset->find('first', $options));
Solución
EDIT
Add this line to your asset model
public $primaryKey = 'id';
and make sure that $primaryKey is not defined somewhere else in the model.