问题是我不想查询内部刀片,因为它有一个坏主意,我有2个表:
" kriterias" table(id_kriteria,kriteria_name)
" evaluasis" table(id_food,id_kriteria,grade)
这是我的问题开始的地方,我希望在我的刀片视图中应用此代码:
@for ($i=1;$i<=$jlhkriteria;$i++)
<?php $evaluasi = mysqli_query($mysqli, "SELECT k.kriteria_name,e.id_kriteria,e.grade FROM evaluasis e, kriterias k WHERE
e.id_food='$nis' AND e.id_kriteria='$i' AND e.id_kriteria=k.id_kriteria");
$hasil = mysqli_fetch_array($evaluasi, MYSQLI_ASSOC); ?>
<?php echo $hasil['kriteria_name']; ?>
<?php echo $hasil['grade']; ?>
<?php echo $i; ?>
@endfor
据我所知,使用eloquent加入上面的选择查询我使用它 :
$evaluasi = Kriteria::with(array('evaluasi' => function($query) use ($nis) {
$query ->where('id_food', $nis)
->where('id_kriteria',$i)//this $i value are get from for loop in blade
->select('id_kriteria', 'grade');
}))->firstOrFail();
在查找刀片中的循环内容时总是有问题。我以前的尝试是在控制器中执行for循环并在刀片中预先设置它,对于$ i值,我得到id_kriteria值,但我想知道如何在控制器中查询它,同时在刀片和回声中获取$ i值#34; kriteria_name&#34;和&#34;成绩&#34;和&#34; $ i&#34; ?
编辑1:
添加模型和控制器
并有它的模型:
Kriteria Model
public function evaluasi()
{
return $this->hasMany(Evaluasi::class, id_kriteria, id_kriteria);
}
Evaluasi Model
public function kriteria()
{
return $this->belongsTo(Kriteria::class, id_kriteria, id_kriteria);
}
控制器部分(不要了解&#34; nis&#34;值,因为我从请求中得到它的整数):
$jlhkriteria = Kriteria::count();
return view('rank', compact('nis', 'jlhkriteria));
答案 0 :(得分:0)
您的控制器将是这样的:
$kriteria = Kriteria::with('evaluasi')->get();
return view('rank', compact('kriteria'));
在你看来:
@foreach ($kriteria as $k)
{{ $k->kriteria_name }}
{{ $k->id }}
@foreach ($k->evaluasi as $e)
{{ $e->grade }}
{{ $e->id }}
@endforeach
@endforeach
试试这个并检查它是否有帮助......
答案 1 :(得分:0)
好的,我明白了。首先,我需要修复关系,使用新的食物表创建多对多的关系,我将获得数据透视表。
//Kriteria Model
public function food()
{
return $this->belongstoMany(Food::class, "pivot_table", id_kriteria, id_food);
}
//Food Model
public function kriteria()
{
return $this->belongsToMany(Kriteria::class, "pivot_table", id_food, id_kriteria)->withPivot('grade');
}
控制器:
$nis = 1;
$evaluasis = Food::find($nis);
$hasils = $evaluasis->kriteria;
最后在视图中显示:
@foreach($hasils as $hasil)
<tr>
<td>
{{ $hasil->kriteria_name }}
</td>
<td>
<input type=text name='grade{{ $hasil->id_kriteria }}' value='{{$hasil->pivot->grade }}'>
</td>
</tr>
@endforeach
并完成,它有效!!!