微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么这段代码显示 $req 变量未定义?

如何解决为什么这段代码显示 $req 变量未定义?

<?PHP

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class universityController extends Controller
{
    //

    public function getStudents(Request $req)
    {
        $students= DB::table('students')
        ->join('applicants',function ($join) {
            $join->on('students.id','=','applicants.studentid')
                 ->where('applicants.scholarshipid',$req->scholarshipid);
        })
        ->get();
        return $students;
        // return $req->scholarshipid;
    }
}

解决方法

正如 @lagbox 提到的,你在一个匿名函数中,它无法到达外部作用域 所以要解决这个问题,你需要像这样使用 use

 public function getStudents(Request $req)
    {
        $students= DB::table('students')
        ->join('applicants',function ($join) use($req) {
            $join->on('students.id','=','applicants.studentid')
                 ->where('applicants.scholarshipid',$req->scholarshipid);
        })
        ->get();
        return $students;
        // return $req->scholarshipid;
    }

有关 anonymous function 的更多信息,请查看此处的 docs

,

使用匿名变量

$students= DB::table('students')
        ->join('applicants',function ($join) use ($req) {
            $join->on('students.id',$req->scholarshipid);
        })
        ->get();

了解更多 cmake FindBoost not finding Boost libraries when building with MinGW on Windows

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。