我最近开始使用Laravel,最近才获得帮助,可以将数据从一个控制器插入到多个表中。现在,我正在尝试从数据库中检索数据并填充表单(如果需要进行编辑或是否有人需要查看数据以确认其正确性)。我不明白如何在Laravel模型中加入表格?还是我必须创建一个联接SQL查询?
Travelbill.php模型
<?php
class Travelbill extends Eloquent {
protected $table = 'travelbill';
protected $primaryKey = 'TravelbillId';
protected $fillable = array('ResourceId', 'Destination', 'StartDay', 'StartTime', 'EndDay', 'EndTime', 'Invoice', 'TravelCompensation');
public $timestamps = true;
public function travelbill() {
return $this->belongsTo('User', 'ResourceId', 'ResourceId');
}
public function cost() {
return $this->hasOne('Cost', 'TravelbillId', 'TravelbillId');
}
public function allowance() {
return $this->hasOne('Allowance', 'TravelbillId', 'TravelbillId');
}
}
?>
Cost.php模型
<?php
class Cost extends Eloquent {
protected $table = 'cost';
protected $primaryKey = 'CostId';
// protected $fillable = array('TravelbillId', 'Description', 'DescriptionByHiq', 'SekInklMoms', 'SekExklMoms', 'SekInklMomsByHiq', 'SekExklMomsByHiq', 'Currency', 'ExchangeRate');
protected $fillable = array('TravelbillId', 'Description', 'DescriptionByHiq', 'SekInklMoms', 'SekMoms', 'SekInklMomsByHiq', 'SekMomsByHiq', 'Currency', 'ExchangeRate');
public $timestamps = false;
public function cost() {
return $this->belongsTo('Travelbill', 'TravelbillId', 'TravelbillId');
}
}
?>
Allowance.php模型
<?php
class Allowance extends Eloquent {
protected $table = 'allowance';
protected $primaryKey = 'AllowanceId';
protected $fillable = array('TravelbillId', 'DayAllowance', 'Breakfast', 'Lunch', 'Dinner');
public $timestamps = false;
public function allowance() {
return $this->belongsTo('Travelbill', 'TravelbillId', 'TravelbillId');
}
}
?>
或者我在哪里加入,所以如果我得到旅行单,它还会随请求获得费用和津贴数据?
编辑:
我需要将数据输入到AngularJS表单中,因此,如果id = 1的人需要编辑其Travelbill,他应该可以单击编辑按钮并查看ha填写的信息。
答案 0 :(得分:0)
您可以在此处执行的最简单的数据检索形式是:
$travelBills = Travelbill::with(['code','allowance'])->get();
这是渴望加载,将执行三个查询:
最终,每个Travelbill模型将已经具有一个关联的Code and Allowance模型,使您可以像这样工作:
echo $travelBill->cost->SekInklMoms;
对于您加载的其中一份旅行单。注意第一个查询中的几件事: