不使用CakePHP 2中的外键添加关联值

时间:2014-12-21 16:56:23

标签: php mysql cakephp

最近我开始使用CakePHP,从使用Bake开始获得简单的CRUD。

我有一个名为" Contract"与"产品"相关联和"客户"如下。

    public $belongsTo = array(
    'Customer' => array(
        'className' => 'Customer',
        'foreignKey' => 'customer_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ),
    'Product' => array(
        'className' => 'Product',
        'foreignKey' => 'product_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

现在我想通过不使用select box作为customer_id和product_id的输入表单来自定义Bake创建的添加视图(add.ctp)。而不是使用显示与外键关联的产品/客户的所有可能名称的选择框我想使用文本字段,以便人们可以从产品/客户表中键入其中一个字段(例如product_code,customer_code)和将其转换为外键,为Contract表创建一行。如果有可能从Customer / Product字段中找不到值,我想跳过向Contract表添加一行。

我想知道这是否可行。

谢谢,

1 个答案:

答案 0 :(得分:0)

基本概念是:使用您选择的JS库,猜测它的jquery。观察文本字段中的更改,在更改时,将带有文本字段值的ajax GET请求发送到应用程序that returns json的控制器/操作。单击其中一个结果会将所选记录的ID设置为隐藏字段。完成。

如果你搜索谷歌或Stackoverflow,你会发现很多例子。