gpt4 book ai didi

mysql - 如何计算foreach循环的值?

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:42 25 4
gpt4 key购买 nike

我正在创建我的第一个 laravel 项目,我想从“营养”sql 表中获取信息并计算每个用户的结果。我正在使用 foreach 输出我的“用户”表和我的 ***.blade.php(主题文件)。我想做一些对每个用户都有值(value)的事情。

我在 Controller 中的功能:

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;
}

最佳答案

理想情况下,您会创建一个营养 Eloquent model并使用 Laravel 的 relationship functions .但如果你不能/不想,那就创建你自己的。

    // In app/User.php
public function nutritions()
{
return DB::table('nutrition')->where('user',$this->id);
}

然后:

    // In blade view
@foreach ($users as $user)
{{ $user->nutritions()->count() }}
@endforeach

请注意,您可以像我上面那样使用 DB facade 的方法进行选择,而不是写出原始查询。

如果你整理好你的表格并使用 Eloquent 作为 Nutrition 那么它会像这样简单:

    // In app/User.php
public function nutritions()
{
return $this->hasMany('App\Nutrition','user');
}

请注意,如果您采用 Eloquent 路线,则值得更改您的数据库架构以使用 Laravel 命名约定,例如你的 User 应该存储在一个名为 users 的表中,你的 nutrition 表将变成 nutritions with user_id 作为外键。

关于mysql - 如何计算foreach循环的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com