Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

noblemfd's avatar

No query results for model [App\Models\Appraisal\AppraisalRespondent] msf_manager

I have this code:

Controller

use App\Models\Appraisal\AppraisalRespondent;

public function msf_manager()
{   
    $userCode                   = Auth::user()->employee_code;
    
    $linemanagerEmployeeIds     = HrEmployee::select('id','employee_code')->where('line_manager_id', $userCode)->get();
    $respondents                = AppraisalRespondent::orderBy('created_at', 'DESC')->whereIn('employee_id', $linemanagerEmployeeIds)->get();

    return view('appraisal.appraisal_respondents.msf_manager')
                    ->with('respondents', $respondents);
}

route:

Route::get('/appraisal_respondents/msf_manager', 'AppraisalRespondentsController@msf_manager')->name('appraisal_respondents.msf_manager');

When I rendered the page, I got this error:

No query results for model [App\Models\Appraisal\AppraisalRespondent] msf_manager

I did

dd($respondents);

But the error is still there.

How do I get it resolved?

Thanks

0 likes
5 replies
MichalOravec's avatar

Change

$linemanagerEmployeeIds = HrEmployee::select('id','employee_code')->where('line_manager_id', $userCode)->get();

to

$linemanagerEmployeeIds = HrEmployee::where('line_manager_id', $userCode)->pluck('id);

Because you need just ids and you put there objects.

ismaile's avatar
ismaile
Best Answer
Level 30

My guess is that there is a conflict in your routes.

You must have a route like this somewhere:

Route::get('/appraisal_respondents/{appraisal_respondent}', 'AppraisalRespondentsController@show');

When you go to the URL /appraisal_respondents/msf_manager, it is handled by this route.

Indeed, the error says: "No query results for model [App\Models\Appraisal\AppraisalRespondent] msf_manager"

So, it's like msf_manager is considered like an id for route model binding and there's obviously no id with a value of msf_manager.

I would suggest you to move your route to the top to test. I am talking about this one:

Route::get('/appraisal_respondents/msf_manager', 'AppraisalRespondentsController@msf_manager')->name('appraisal_respondents.msf_manager');

In reality, it just have to be above the first one I mentioned.

noblemfd's avatar

@ismaile - Yes, I have a route generated from

Route::resource('appraisal_respondents', 'AppraisalRespondentsController');

In the route list

appraisal/appraisal_respondents/{appraisal_respondent} | appraisal.appraisal_respondents.show | App\Http\Controllers\Appraisal\AppraisalRespondentsController@show

What do I do?

MichalOravec's avatar

Move it above the resource route

Route::get('/appraisal_respondents/msf_manager', 'AppraisalRespondentsController@msf_manager')->name('appraisal_respondents.msf_manager');

Route::resource('appraisal_respondents', 'AppraisalRespondentsController');

Please or to participate in this conversation.