Hasrole 2桌

时间:2019-09-28 00:03:21

标签: laravel laravel-5

我有一个名为Student的模型,其字段为name,这是正确的函数。

public function index(Request $request)
    {   
        $user = $request->user();
        $students = Student::query()
        ->when($user->hasRole('admin') !== true, function (Builder $query) use ($user) {
            $query->where('email', $user->email);
        })
        ->when($request->has('search'), function (Builder $query) use ($request) {
            $query->where('name', 'like', '%'.$request->input('search').'%');
        })
        ->paginate(5);

        return view('admin.students.index', compact('students'))
        ->with('display_search', $user->hasRole('admin'));
    }

现在,在我的模型Payment中,我有一个包含2个表(Payment & Student)的请求。

这是我的函数index()

public function index(Request $req) 
    {
    if ($req->search == "") {
        $payments = Payment::paginate(5);
        return view('admin.payments.index', compact('payments'));

    } else {

        $validated = $req->validate([
            'search' => 'alpha', 
        ]);

        $payments = payment::whereHas('students', function($query) use($req) {
            $query->where('name', 'like', '%' . $req->search . '%');
        })->paginate(5);
        return view('admin.payments.index', compact('payments'));

        }

    }

我的问题是我想调整功能以与用户建立联系。

我现在有这个???

public function index(Request $request)
{   
   $user = $request->user();
   $payments = Payment::query()
   ->when($user->hasRole('admin') !== true, function (Builder $query) use ($user) {
   $query->where('email', $user->email);
   })
   ->when($request->has('search'), function (Builder $query) use ($request) {

如何包含此内容:

$payments = payment :: whereHas ('students', function ($ query) use ($ req) {
$query-> where ('name', 'like', '%'. $ req-> search. '%');

0 个答案:

没有答案