我正在创建我的第一个laravel项目,我想从“营养” sql表中获取信息并计算每个用户的结果。我使用foreach将我的“用户”表输出到我的***。blade.php(主题文件)。我想做一些对每个用户都有价值的事情。
我在控制器内的功能:
public function nutrition() {
$id = Auth::User() -> id;
$users = DB::SELECT('SELECT * FROM clients WHERE tr_id = ?', ["$id"]);
return view('mitybos-valdymas', compact('users'));
}
我的路线:
Route::get('/mityba', 'HomeController@nutrition');
内部***。blade.php
@foreach ($users as $user)
{{ $user->name }}
@endforeach
示例我想在laravel(不是php)中执行的操作:
$sql = mysqli_query($conn, "SELECT * FROM clients WHERE tr_id = 1");
while ($row = mysqli_fetch_array($sql)) {
$u_id = $row['id'];
$name = $row['name'];
$sql2 = mysqli_query($conn, "SELECT * FROM nutrition WHERE user = '$u_id'");
$count = mysqli_num_rows($sql2);
echo "User name - " . $name. " / RESULT - " . $count;
}
答案 0 :(得分:3)
理想情况下,您将创建一个<script type="text/javascript">
$(document).ready(function(){
$('#pizzaOption>input[type="checkbox"]').click(function() {
if ($(this).is(':checked')) {
var pizzaPrice=$(this).closest("#pizzaOption").data('price');
console.log(price);
$('#total').html(pizzaPrice);
} else {
var pizzaPrice=0;
$('#total').html(pizzaPrice);
}
});
});
</script>
Eloquent model并使用Laravel的relationship functions。但是,如果您不愿意/不想,请创建自己的。
Nutrition
然后:
// In app/User.php
public function nutritions()
{
return DB::table('nutrition')->where('user',$this->id);
}
PS,您可以像上面一样使用 // In blade view
@foreach ($users as $user)
{{ $user->nutritions()->count() }}
@endforeach
门面的方法进行选择,而不用编写原始查询。
如果您修复表并将Eloquent用作DB
,那么就很简单:
Nutrition
请注意,如果您采用Eloquent路由,则有必要更改数据库架构以使用Laravel命名约定,例如您的 // In app/User.php
public function nutritions()
{
return $this->hasMany('App\Nutrition','user');
}
应该存储在名为User
的表中,并且您的users
表将以nutrition
作为外键成为nutritions
。
答案 1 :(得分:1)
这是另一种实现方式,因此它将从0开始直到用户数量
@foreach ($users as $index => $user)
{{ $index }}
@endforeach
答案 2 :(得分:-1)
如果我完全理解您的问题,请尝试:)
//路线
Route::get('/mityba', 'HomeController@nutrition');
// Homecontroller @ nutrition
public function nutrition() {
$authId = Auth::id();
$users = DB::table('clients')->where('tr_id', $authId)->get(); //sql1
return view('mitybos-valdymas', compact('users'));
}
//在mitybos-valdymas.blade.php内部, 检查此链接use PHP in the Blade
@php
$count = 0; //Initialize variable
@endphp
@foreach ($users as $user)
$count += 1;
$result = DB::table('nutrition')->where('user', $user->id)->get() //sql2
echo "User name - " . $result->name. " / RESULT - " . $count;
@endforeach
为了您的编码安全:)