Database 如何在eloquent中通过id调用2个不同表中的数据?
那是控制器Database 如何在eloquent中通过id调用2个不同表中的数据?,database,laravel,firebase-realtime-database,eloquent,illuminate-container,Database,Laravel,Firebase Realtime Database,Eloquent,Illuminate Container,那是控制器 public function hitung($request, $response, $args) { $datauser = User::with(['usia','aktivitas'])->find($args['id']); $tinggi = $datauser['tinggi']; $berat = $datauser['berat']; $nama = $datau
public function hitung($request, $response, $args)
{
$datauser = User::with(['usia','aktivitas'])->find($args['id']);
$tinggi = $datauser['tinggi'];
$berat = $datauser['berat'];
$nama = $datauser['nama'];
$umur = $datauser['umur'];
$aktivitas = $datauser['aktivitaas_id'];
$usia = $datauser['usia_id'];
$nilai = $datauser->aktivitas->nilai;
$energy = $datauser->usia->energy;
$protein = $datauser->usia->protein;
$lemak = $datauser->usia->lemak;
$karbohidrat = $datauser->usia->karbohidrat;
$amb = 655 + (9.6 * $berat) + (1.8 * $tinggi) - (4.7 * $umur);
$amb = round($amb);
$energytotal = $amb * $nilai + $energy;
$energytotal = round($energytotal);
$protein = (15 * $energytotal / 100) + $protein;
$protein = round($protein);
$lemak = (25 * $energytotal / 100) + $lemak;
$lemak = round($lemak);
$karbohidrat = ($energytotal - ($protein + $lemak)) + $karbohidrat;
$karbohidrat= round($karbohidrat);
return $response ->withJson([
'Nama' => $nama,
'total_energy' => $energytotal ,
'Protein'=> $protein,
'lemak'=> $lemak,
'Karbohidrat'=> $karbohidrat,
]);
}
这就是用户模型:
<?php
namespace App\models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public $timestamps = false;
protected $fillable = ['username', 'password', 'nama', 'tinggi', 'berat', 'umur', 'usia_id', 'aktivitas_id'];
protected $table = "users";
public function usia()
{
return $this->belongsTo('App\Models\Usia');
}
public function aktivitas()
{
return $this->belongsTo('App\Models\Aktivitas');
}
public function forum()
{
return $this->hasMany('App\Models\Forum');
}
}
有什么不同的方法吗?我想您的本地主机是Windows,远程主机是Linux 首先,您应该知道windows文件和文件夹名称不区分大小写,并且windows操作系统中的模型和模型之间没有区别 但是Linux文件和目录名区分大小写 在您的代码中:
namespace App\models;
及
您使用模型
和模型
您应该检查目录名,并在您写入错误单词的任何位置重命名它。id中的值是多少?您是否尝试使用where语句而不是find()方法,例如$datauser=
User::where('id','=',$args['id'])->with(['usia','aktivitas'])->get()代码>?您在主机上显示了哪个错误?我使用post man,显示空白页,错误是500内部服务器error@YusranPanca很高兴,所以你可以检查它作为你问题的答案
<?php
namespace App\models;
use Illuminate\Database\Eloquent\Model;
class Usia extends Model
{
protected $table = "usia";
public function user()
{
return $this->hasMany('App\Models\User');
}
}
$datauser = User::with(['usia','aktivitas'])->find($args['id']);
namespace App\models;
return $this->hasMany('App\Models\User');