Sevalla is the all-in-one PaaS for your web projects. Host and deploy your applications, databases, object storage, and static sites. Enjoy advanced deployment pipelines, a complete database studio, instant preview apps, and one-click templates. The pricing is simple: no hidden fees, no seat-based pricing, and you pay only for what you use. Get real human support from developers.

Get started now with a $50 credit at Sevalla.com.

How to test that an Eloquent model actually exists

Original – by Freek Van der Herten – 1 minute read

In your tests, you might have used assertDatabaseHas to make sure that a model actual is persisted.

it('will not delete a user', function() {
    $user = User::find(1);

    // perform some logic of which you want 
    // to verify that it doesn't delete your user

    $this->assertDatabaseHas('users', [
        'id' => 1,
    ]);
});

In recent Laravel versions you can replace this with assertModelExists, which performs that database check under the hood.

it('will not delete a user', function() {
    $user = User::find(1);

    // perform some logic of which you want 
    // to verify that it doesn't delete your user

    $this->assertModelExists($user);
});

There's also a assertModelMissing that you could you instead of the more verbose assertDatabaseMissing.

I hope this little tip, will improve the readability of your tests.

Stay up to date with all things Laravel, PHP, and JavaScript.

You can follow me on these platforms:

On all these platforms, regularly share programming tips, and what I myself have learned in ongoing projects.

Every month I send out a newsletter containing lots of interesting stuff for the modern PHP developer.

Expect quick tips & tricks, interesting tutorials, opinions and packages. Because I work with Laravel every day there is an emphasis on that framework.

Rest assured that I will only use your email address to send you the newsletter and will not use it for any other purposes.