gpt4 book ai didi

php - AngularJS 和 Laravel 4.2 从多个表中检索数据并连接它们

转载 作者:行者123 更新时间:2023-11-29 17:01:31 24 4
gpt4 key购买 nike

我最近开始使用 Laravel,最近刚刚获得帮助,将数据从一个 Controller 插入到多个表中。现在,我尝试从数据库中检索数据,并在需要编辑或有人需要查看数据以确认其正确性时填充表单。我不明白如何在 Laravel 的模型中加入表格?或者我必须创建一个连接 SQL 查询吗?

Travellill.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 已填写的信息。

最佳答案

您可以在此处执行的最简单的数据检索形式是执行以下操作:

$travelBills = Travelbill::with(['code','allowance'])->get();

这是预加载,将执行三个查询:

  • 加载所有旅行账单
  • 加载具有与所有旅行账单 ID 匹配的外键的所有代码,并将它们分配给每个旅行模式
  • 对津贴也采取同样的做法

最终您将得到的结果是,每个 Travelbill 模型都已经有一个关联的代码和津贴模型,让您可以像这样工作:

echo $travelBill->cost->SekInklMoms;

您加载的一张旅行账单。请注意第一个查询中的几件事:

  • 旅行账单被过滤,我们此时正在加载它们。
  • 我们的做法很简单,但不一定高效。我建议首先熟悉关系加载,然后再进行诸如连接之类的事情(无论如何,这都违背了 Eloquent ORM 的精神)

关于php - AngularJS 和 Laravel 4.2 从多个表中检索数据并连接它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52201042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com