在yii 框架中,我正在做一个小应用程序。我的数据库中有两个名为products and sales
Product 表的表是这样的
================
product
================
+ id +
+ product_name +
+ cost_price +
+selling_price +
+ created_by +
+ updated_by +
+ created_at +
+ updated_at +
+++++++++++++++++
=================
Sales
=================
+ id +
+ product_id +
+ price +
+ created_by +
+ updated_by +
+ created_at +
+ updated_at +
+++++++++++++++++
对于上述所有两个表,我已经从 gii 工具(crud)中完成了模型和控制器,之后我只是在销售模型中建立了关系。关系是这样的
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'product' => array(self::HAS_MANY,'Products','product_id'),
);
}
之后,我只是在销售模型中渲染了 Products 模型。销售控制器操作创建是这样的
public function actionCreate()
{
$model=new Sales;
$products = new Products;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Sales'], $_POST['Products']))
{
$model->attributes=$_POST['Sales'];
$products->attributes = $_POST['Products'];
$valid = $model->validate();
$valid = $products->validate();
if($valid)
{
$products->save(false);
$model->product_id = $products->getPrimaryKey();
$model->save(false);
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
'products' =>$products,
));
}
并且鉴于我正在渲染这样的文件
<div class="row">
<?php echo $form->labelEx($products,'product_name'); ?>
<?php echo $form->dropdownList($products,'product_name', CHtml::listData(Products::model()->findAll(), 'id', 'product_name'), array('empty'=>array('choose'=>'---Select One---'))); ?>
<?php echo $form->error($products,'product_name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'price'); ?>
<?php echo $form->textField($model,'price'); ?>
<?php echo $form->error($model,'price'); ?>
</div>
在这里,我正在做产品表中所有可用产品的下拉列表。之后,当我保存总表格时。
sales 表中的 product_id 显示为 NULL。当从下拉列表中选择所选产品时,我希望在该位置使用外键。请告诉我我在哪里做错了。任何帮助和建议都将是非常可观的。谢谢