How to check record exist or not in relationship table

Updated at 12-Sep-2021, By samar

How to check record exist or not in relationship table

Good day, guys. In this post, we’ll look at how to solve the "How to check record exist or not in relationship table" programming puzzle.

You can check if records exist or not in the relationship table. You have to use the has() method with the name of relationship method to get the record (parent table) if records exist in the related table and it will return null if there are no records in it (child table).
  • Check if user has created posts or not in laravel using has method

    $userHasPosts = User::has('posts')->find(Auth::user()->id);
    dd($userHasPosts);
    
    //app\Models\User.php
    //Model path may be different as per your laravel version
    public function posts(){
        return $this->hasMany(Post::class);
    }
    

    Output :

    Return user details from table if user has created any post

    App\Models\User {#1556 ▼
      #fillable: array:13 []
      #hidden: array:2 []
      #casts: array:1 []
      #connection: "mysql"
      #table: "users"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      +preventsLazyLoading: false
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:23 []
      #original: array:23 []
      #changes: []
      #classCastCache: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #visible: []
      #guarded: array:1 []
      #rememberTokenName: "remember_token"
    }

    If user has not created any post 
     
    null

    This code snippet will return the record from the users table if there are post records (from the related post table) that belong to this particular user exists in the posts table else it will return null.  To achieve this you have to create a users table with column id (primary key) and posts table with user_id (foreign key) in the database. You have to also create a hasMany relationship with name posts in the user model.

Back to code snippet queries related laravel