Cakephp:从模型中获取数据到另一个模型的View中

时间:2012-10-24 11:13:26

标签: php cakephp cakephp-2.0

在Cakephp v2.3应用程序中,有两种模式:

购买模式:它包含以下主要字段:id,invoice_date& gross_amount(根据Supplier.tax_rate计算)。

class Purchase extends AppModel {

    public $displayField = 'id';
    public $belongsTo = 'Supplier';
}

供应商模式:它包含id,name& TAX_RATE

class Supplier extends AppModel {
    public $displayField = 'name';
    public $hasMany = 'Purchase';
}

这是我的PurchasesController的添加视图外观: enter image description here

现在,我希望将当前选定供应商的Supplier.tax_rate显示在app/View/Purchase/add.ctp中作为标签或文本输入。

知道怎么做吗?

2 个答案:

答案 0 :(得分:0)

使用Jquery查找选择框更改时的税率。查看JsHelper,http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html了解更多详情

以下是我的1.3应用程序中的一个可能对您有所帮助的示例视图代码。您当然必须加载帮助程序,jquery,控制器代码和其他视图。

//helper in view
//observe selectbox for selection, if change, update question.
$js->get('#EntitiesUserPrimarycontactId')->event('change', $js->request(array('controller'=>'users','action'=>'update_previewcontact'),array('update'=>'#step4_results','dataExpression'=>true,
'before' => "$('#step4_results').fadeOut('fast');",
'complete' => "$('#step4_results').fadeIn('slow');,
'data'=>$js->serializeForm(array('isForm' => true, 'inline' => true)) )));

答案 1 :(得分:0)

我明白了。 最后我做的是将所有供应商税率数据都设为JSON,并将其输出到视图和&然后使用客户端javascript选择相关代码。

PurchasesController调用自定义模型方法,该方法触发SQL查询以获取所有供应商税率数据。

$supplier_tax_rate = $this->Purchase->Supplier->getTaxRate();
$this->set('supplier_tax_rate', json_encode($supplier_tax_rate));

在客户端。我使用Javascript来做我想做的事情,这里supplier_tax_rates是存储JSON税率数据和变量的变量。 getTaxRate是一个变量函数,它根据供应商下降的id从JSON返回税率。

$(function() {
    var taxRates = $.parseJSON(supplier_tax_rates);

    var getTaxRate = function(id) {
        for (var i in taxRates) {
            if (taxRates[i].id == id) {
                return taxRates[i].tax_percentage_charged;
            }
        }
    };
}); 

这对我很有用,希望它可以帮助其他想要从数据库中获取数据的人,基于下拉值。