Pergunta

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));
Foi útil?

Solução

EDIT

Add this line to your asset model

public $primaryKey = 'id';

and make sure that $primaryKey is not defined somewhere else in the model.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top