第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Laravel 中調(diào)用命名函數(shù)作為回調(diào)?

如何在 Laravel 中調(diào)用命名函數(shù)作為回調(diào)?

PHP
largeQ 2023-08-11 10:49:37
我的模型中有兩個函數(shù):function getPersonsByGroup($groupId, $callback) {        $group = StutGroup::where('stg_id', $groupId)->get();        $persons = [];        foreach($group as $gr) {            foreach($gr->students as $stud) {                $persons[] = $stud->person;            }        }        return $callback(collect($persons));    }function joinStudentsToPersons($person) {    return $person->each(function ($pers) {            $pers->student = \DB::connection('pgsql2')->table('students')->where('stud_pers_id', $pers->pers_id)->get();        });    }我試圖調(diào)用getPersonsByGroup控制器中的函數(shù),傳遞對回調(diào)的引用,如下所示:$students = $studGroup->getPersonsByGroup($request->group, $studGroup->joinStudentsToPersons);但是如果我將匿名函數(shù)傳遞給getPersonsByGroup一切正常:$students = $studGroup->getPersonsByGroup($request->group, function($person) {      return $person->each(function ($pers) {          $pers->student = \DB::connection('pgsql2')->table('students')->where('stud_pers_id', $pers->pers_id)->get();      });});我究竟做錯了什么?
查看完整描述

1 回答

?
臨摹微笑

TA貢獻1982條經(jīng)驗 獲得超2個贊

如果您想保留這種結(jié)構(gòu),問題的解決方案是使方法返回閉包,如下所示:


function joinStudentsToPersons() {

    return function ($person) {

        $person->each(function ($pers) {

            $pers->student = \DB::connection('pgsql2')->table('students')

                                ->where('stud_pers_id', $pers->pers_id)

                                ->get();

        });

    };

}

然后這樣稱呼它:


$students = $studGroup->getPersonsByGroup($request->group, $studGroup->joinStudentsToPersons());



查看完整回答
反對 回復(fù) 2023-08-11
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號