Home » Php » php – Using laravel eloquent relation to retrieve all records except NULL

php – Using laravel eloquent relation to retrieve all records except NULL

Posted by: admin July 12, 2020 Leave a comment

Questions:

Is there a way to retrieve all the records which has not null using eloquent model.

e.g.

I have relation setup

Plate model

public function project()
{
    return $this->hasOne('App\Models\Project');
}

project model

public function plate()
{
    return $this->belongsTo('App\Models\Plate');
}

How can I retrieve all the records which have value.

trying this return $p = \App\Models\Plate::with('project')->get();

will return everything, even those who have NULL.

enter image description here

All I want is plates which have projects attached to. I tried laravel documentation, but could’t find anything. Is there also same approach for many relations

How to&Answers:

You can use the has method to only retrieve plates that have a project.

\App\Models\Plate::with('project')->has('project')->get();

Docs on has: http://laravel.com/docs/5.1/eloquent-relationships#querying-relations