我正在玩弄我的第一个Laravel项目,上面的问题可能有点混淆,但让我解释一下: -(Laravel)从表格中获取ID与另一个表格链接的表格中的数据
我有3个表(其实我有更多的,但让我们忽略它),我有standards
,stddetails
& sections
如下所示: -
所以外键对应低于: -
从表sections
=列
ssctionFK
表
stddetails
列
列
stdPK
从表standards
=列stdFK
从
表stddetails
和情景是这样的: -
可以说我有一个$id
匹配stdPK
从表standards
。 与那$id
,我需要得到表sections
的所有数据。问题是,我无法找到正确的查询,因为standards
和sections
表只与stddetails
表相关联。
目前我在我的web.php
查询是这样的: -
Route::get('getstddtl/{id?}', function ($id) {
$stdsec = Section::
leftJoin('stddetails', 'ssctionFK', '=', 'ssctionPK')
->join('standards', function($join) use ($id){
$join->on('stdPK', '=', 'stdFK')
->where('stdFK', $id);
});
return view('standarddtl', [
'stdsec' => $stdsec
]);
});
我想这应该很容易,孩子......我错了......我希望有人能帮助我,因为我的大脑有思维能力非常有限。
UPDATE 1: -
我已经设置在每个模型中的口才关系,并使用Laravel的锋方法中检索数据: -
$stdsec = Stddetail::with('section')->find($id);
的所有数据被从两个stddetails
& sections
检索现在的问题是在显示页面中显示来自列ssctionName
的sections
表中的数据时遇到问题,因为它返回错误。
显示页面上的相关代码如下: - 显示
@foreach ($stdsec as $task)
{{strtoupper($task->ssctionName)}}
@endforeach
错误: -
我觉得口才方法是好的,现在显示的部分是给我麻烦。有关如何解决这个问题的任何想法?
更新2: -
这里的每个表的模式: -
表standards
为标准模型: -
namespace App;
use Illuminate\Database\Eloquent\Model;
class Standard extends Model
{
public $primaryKey = 'stdPK';
public function stddetail()
{
return $this->hasMany(Stddetail::class, 'stdFK', 'stdPK');
}
}
表stddetails
为Stddetail模型: -
namespace App;
use Illuminate\Database\Eloquent\Model;
class Stddetail extends Model
{
public $table = "stddetails";
public $primaryKey = 'sdtlPK';
protected $fillable = ['stdFK', 'sdtlPgNo', 'sdtlLnNo', 'sdtlText', 'sdtlShrtnote', 'sdtlSchm', 'svrFK', 'ssctionFK', 'sdtlRefLbl'];
public function standard()
{
return $this->belongsTo(Standard::class, 'stdFK');
}
public function section()
{
return $this->belongsTo(Section::class, 'ssctionFK');
}
}
表sections
为科模型: -
namespace App;
use Illuminate\Database\Eloquent\Model;
class Section extends Model
{
public $primaryKey = 'ssctionPK';
public function stddetails()
{
return $this->hasMany(Stddetail::class, 'ssctionFK', 'ssctionPK');
}
}
这不是打算如何使用数据库。但是你可以用pk作为外键进行一些连接。 –
看看关系吗?属于/有很多? – senty
@ThomasMoors Owh,不知道..其实有很多表互相链接,但在我正在处理的一个页面上,使用这3个表.. – Kaydarin