所以,我有三张桌子:'汽车','hotlaptimes'和'tyrestemperature'。可以说我正在实时感知轮胎温度。我想在一个视图中显示最佳的热圈时间,以及那个热圈的平均轮胎温度。我仍然找不到解决方案来获取轮胎温度。表'汽车'是“父亲”,在'hotlaptimes'和'tyrestemperature'上有'cars_id'字段。模特:
function derniereLigneColCC() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Commande");
var startRow = '1'; // ligne départ = 1, modifiable si besoin
var valColonneB = sheet.getRange("B1:B").getValues();
var lignesColonneB = valColonneB.filter(String).length;
var activer = sheet.getRange(lignesColonneB + 6, 2).activate(); // activer dans la colonne B la dernière cellule non vide
var Inscrire = activer.setValue("High");
}
这是我在控制器上最接近的方法:
class Car extends Model
{
protected $table = "cars";
public function hotlaptimes(){
return $this->hasMany('App\Hotlap');
}
public function tyrestemperature(){
return $this->hasMany('App\Tyretemp');
}
}
class Hotlap extends Model
{
protected $table = "hotlaptimes";
public function car(){
return $this->belongsTo('App\Car');
}
}
class Tyretemp extends Model
{
protected $table = "tyrestemperature";
public function car(){
return $this->belongsTo('App\Car');
}
}
我得到一个错误,说明此集合实例上不存在Property [id]。
我敢肯定这不是不可能的,我一定是错过了什么。任何帮助将不胜感激。
答案 0 :(得分:0)
我想在一个视图中显示最佳的热圈时间,以及该热圈的平均轮胎温度。
如果您尝试使用car
检索best hot lap time
,这就是您接近它的方式:
$best_hot_lap = Hotlap::with("car")
->orderBy("time", "ASC")
->groupBy("cars_id")
->first();
然后,您可以只使用cars_id
的{{1}}属性来检索best_hot_lap
Tyretemp
或使用$temp = Tyretemp::where("cars_id", $best_hot_lap->cars_id)->get();
模型中的Car
关系
Hotlap
答案 1 :(得分:0)
您是否尝试过使用预先加载? laravel文档中有一节" Relationships"。
我现在无法进行测试,只有很小的休息时间,但也许可以尝试像
$bestlap = Hotlap::with('car.tyrestemperature')->sortBy('time')->first();
dump($bestlap->car->tyrestemperature->avg('temperature'));
它应该装载最好的一圈,并加载相应的汽车和轮胎温度
编辑
我才意识到你只想要温度,而不是一圈......
Temperature::where('car_id', function($query) {
return $query->select('car_id')->from(with(new Hotlap())->getTable())->sortBy('time')->first();
})->get();
这将获得car_id的温度集合,我们将通过获取hotlap表的第一个条目的car_id(选择部分)按时间排序。 我想你可以独自在那里工作。