<?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 проверьте документы здесь
Использовать анонимную переменную
$students= DB::table('students')
->join('applicants', function ($join) use ($req) {
$join->on('students.id', '=', 'applicants.studentid')
->where('applicants.scholarshipid','=', $req->scholarshipid);
})
->get();
для большего https://www.php.net/manual/ru/functions.anonymous.php
поскольку это не входит в область действия этой анонимной функции, вы должны указать анонимной функции использовать переменные из родительской области