Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Larvel在数据库中查找where(';week';,$week)和where(';user_id';,$user_id)以查找id_Php_Arrays_Laravel_Find_Where Clause - Fatal编程技术网

Php Larvel在数据库中查找where(';week';,$week)和where(';user_id';,$user_id)以查找id

Php Larvel在数据库中查找where(';week';,$week)和where(';user_id';,$user_id)以查找id,php,arrays,laravel,find,where-clause,Php,Arrays,Laravel,Find,Where Clause,我正在创建一个应用程序,用户可以在其中发起挑战,看看谁的体重减轻得最多 有1张challange表,带有id、用户id(fk)、体重和周数。为了每周在前端显示它们,我制作了一个新阵列 用户控制器: public function index() { $users = User::all(); // get all challanges descending $challanges = Challange::orderBy('wee

我正在创建一个应用程序,用户可以在其中发起挑战,看看谁的体重减轻得最多

有1张challange表,带有id、用户id(fk)、体重和周数。为了每周在前端显示它们,我制作了一个新阵列

用户控制器:

    public function index()
    {
        $users = User::all();

        // get all challanges descending
        $challanges = Challange::orderBy('week', 'DESC')->get();


        // make an array for every [week] that has an array with ['user' => 'weight'] in user_id order
        $weightArray = array();

        // how long is the list depending on amount of weeks
        $startweek = 1;
        $endweek = Challange::max('week');

        // go through every week
        for ($i = $startweek; $i <= $endweek; $i++) {

            // get weight foreach user and if no value set 0
            foreach ($users as $user) {

                // get challange values per week
                $challenge = $user->challanges()->where('week', '=', $i)->get();

                // if there is a challange
                if (count($challenge) > 0) {
                    // set a weight value for that user *!!FIX make weigt alue unique!!*
                    $weightArray[$i][$user->id] = $challenge[0]->weight;
                }
                else {
                    // set 0 if no weight isset
                    $weightArray[$i][$user->id] = 0;
                }
            }
        }

        return view('dashboard', compact('users', 'weightArray'));
    }
public function update(Request $request)
    {
        $week = $request->week;
        $challange = Challange::find($request->user_id)->where('week', $week);
        dd($challange);
    }
这将返回:对成员函数的错误调用,其中()为空

我应该在数组中预先添加id吗?或者我应该在返回的数组上执行where('user\u id',$user\u id)和另一个where吗


我不知道该怎么办。有人能帮忙吗?

顺序不对。你应该:

$challange=challange::where('week',$week)
->其中('user\u id',$request->user\u id)
->第一个();
//或
$challange=challange::where([
“周”=>$week,
'user\u id'=>$request->user\u id
])->第一个();

谢谢Wahyu,这真是太快了!第一个坏了,但是第二个坏了$challange->update()-validate(['weight'=>'required',]])进行更新,然后运行。非常感谢!很乐意帮忙。如果此答案对您有帮助,请将其标记为正确答案。这可以帮助其他人。完成!这是我第二次来这里,所以我不知道。你今天学到了两件事:)我也高估了你。再次感谢。祝您有个美好的一天!祝您有个美好的一天。为我们祷告,在这里避免冠状病毒的危险:')