- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
甚至无法想象如何实现下一个功能。我们有什么:
表1:应用
id - 名称 -//其他列
表 2:app_company
id - 公司名称 - 地区 ID - 申请人 ID -//其他列
表 3:app_region
id - 区域名称
我已经建立了下一个关系:应用模型(一对一关系):
return array(
'company_info' => array(self::HAS_ONE, 'AppCompany', 'applicant_id'),
);
AppCompany 模型:
return array(
'application' => array(self::BELONGS_TO, 'Application', 'applicant_id'),
'region' => array(self::BELONGS_TO, 'AppRegion', 'region_id',)
);
AppRegion 模型(顺便问一下,我真的需要这个模型吗?):
return array(
'company' => array(self::HAS_MANY, 'AppCompany', 'region_id',)
);
这是我的 ApplicationContoller 的 actionCreate:
public function actionCreate()
{
$application = new Application;
$company = new AppCompany;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Application'], $_POST['AppCompany']))
{
$application->attributes=$_POST['Application'];
$company->attributes=$_POST['AppCompany'];
$valid=$application->validate();
$valid=$company->validate() && $valid;
if($valid)
{
if($application->save(false))
{
$company->applicant_id = $application->id;
$company->save(false);
$this->redirect(array('view','id'=>$application->id));
}
}
}
$this->render('create',array(
'application'=>$application,
'company'=>$company,
));
}
我的_表单;
<?php echo $form->errorSummary(array($application, $company)); ?>
<!-- *** -->
<div class="row">
<?php echo $form->labelEx($company,'company_name'); ?>
<?php echo $form->textField($company,'company_name',array('size'=>60,'maxlength'=>75)); ?>
<?php echo $form->error($company,'company_name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($application,'last_name'); ?>
<?php echo $form->textField($application,'last_name',array('size'=>50,'maxlength'=>50)); ?>
<?php echo $form->error($application,'last_name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($company,'company_region_id'); ?>
<?php echo $form->dropDownList($company,'company_region_id', CHtml::listData(AppRegion::model()->findAll(), 'id', 'region_title_ru'), array('empty'=>'Выберите область')); ?> // PAY ATTENTION HERE
<?php echo $form->error($company,'company_region_id'); ?>
</div>
因此,在创建应用程序时(并且当 APPLICATION 是父模型时),我可以通过 AppCompany 模型的下拉列表选择区域标题。因此,当我选择 app_region 表中的“塔什干地区”时,我将该地区的 ID(例如 7)插入到 app_company 的 Region_id 列中。
之后我有一个 View 文件:
<?php $this->widget('bootstrap.widgets.TbDetailView', array(
'data'=>$model,
'type'=>'striped bordered condensed',
'attributes'=>array(
'id',
//
'company_info.company_name',
'company_info.date_of_foundation',
'company_info.company_region_id' // HOW TO SHOW NO ID, BUT THE TITLE?
'last_name',
'first_name'
所以,问题是:是否可以显示位于第三个表中的区域名称,但它们之间无法建立直接关系?
谢谢大家,我希望我能解释清楚我需要什么。
最佳答案
好的,这就是我发现的将其添加到应用程序模型中:
return array(
'company_info' => array(self::HAS_ONE, 'AppCompany', 'applicant_id'),
'region'=>array(
self::HAS_ONE,'AppRegion',array('company_region_id'=>'id'),
'through'=>'company_info'
),
之后我们可以:
<?php $this->widget('bootstrap.widgets.TbDetailView', array(
'data'=>$application,
'type'=>'striped bordered condensed',
'attributes'=>array(
'id',
//
'company_info.company_name',
'company_info.date_of_foundation',
'region.region_title_ru', // REGION NAME WOULD BE SHOWN HERE!
我还发现它可能表现得像:
$a->with('c.b')->find
但在我的项目中还无法实现
关于php - 伊伊。如何建立三个模型之间的关系和数据(A->B->C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134106/
我正在尝试使用 Ebean 获取模型的一部分在 Play! Framework ,但我遇到了一些问题,但没有找到任何解决方案。 我有这些模型: 用户: @Entity @Table(name = "u
我需要一些帮助。我有两个具有一对一关系的类: @Entity public class Parent extends Model{ @Id public Long id; @OneToMa
我是一名优秀的程序员,十分优秀!