New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

dbfx/laravel-strapi

Laravel wrapper for using the Strapi headless CMS
38,672 51
Install
composer require dbfx/laravel-strapi
Latest Version:v4.0.1
PHP:^7.4 || ^8.0
Laravel:8 · 9 · 10
License:MIT
Last Updated:Sep 11, 2026
Links: GitHub  ·  Packagist
Maintainer: dbfx

Laravel wrapper for using the Strapi headless CMS

Latest Version on Packagist Total Downloads


Laravel-Strapi is a Laravel helper for using the Strapi headless CMS.

Note: for Strapi v3 support use version 2.x.x

Installation

You can install the package via composer:

composer require dbfx/laravel-strapi

You can publish and run the migrations with:

You can publish the config file with:

php artisan vendor:publish --provider="Dbfx\LaravelStrapi\LaravelStrapiServiceProvider" --tag="strapi-config"

You need to define your STRAPI_URL and STRAPI_CACHE_TIME in .env: You can also optionally define a STRAPI_TOKEN to enable authentication. Do not include 'Bearer' only the token itself.

STRAPI_URL=https://strapi.test.com
STRAPI_CACHE_TIME=3600
STRAPI_TOKEN=abcd1234abcd1234

Usage

laravel-strapi provides the collection() and entry() calls to return a full collection, or a specific entry from a collection. In the example below we are querying the strapi collection 'blogs' and then getting the entry with id 1 from that collection.

use Dbfx\LaravelStrapi\LaravelStrapi;

$strapi = new LaravelStrapi();
$blogs = $strapi->collection('blogs');
$entry = $strapi->entry('blogs', 1);

There are several useful options available as well.

  • $sortKey and $sortOrder allow you to specify the key to sort on and the direction
  • $fullUrls will automatically add your STRAPI_URL to the front of any relative URLs (e.g. images, etc).
  • $limit sets how many items you are requesting
  • $start is the offset to be used with limit, useful for pagination
  • $populate is an array containing the fields to populate
  • $queryData is an array of additional key-value pairs to add to the query string
use Dbfx\LaravelStrapi\LaravelStrapi;

$strapi = new LaravelStrapi();
$blogs = $strapi->collection('blogs', $sortKey = 'id', $sortOrder = 'DESC', $limit = 20, $start = 0, $fullUrls = true, $populate = ['author', 'images'], $queryData = ['locale' => 'en']);

$entry = $strapi->entry('blogs', 1, $fullUrls = true, $populate = ['author', 'images'], $queryData = ['locale' => 'en']);

You may also access Single Type items as follows:

use Dbfx\LaravelStrapi\LaravelStrapi;

$strapi = new LaravelStrapi();

// Fetch the full homepage array
$homepageArray = $strapi->single('homepage');

// Return just the ['content'] field from the homepage array
$homepageItem = $strapi->single('homepage', 'content');

And you may select entries by searching for a custom field (e.g. slug):

use Dbfx\LaravelStrapi\LaravelStrapi;

$strapi = new LaravelStrapi();

$entries = $strapi->entriesByField('blogs', 'slug', 'test-blog-post');

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

richan-fongdasen/laravel-gcr-worker

Google Cloud Run Worker for Laravel

74,317 4
imanghafoori/laravel-nullable

A package to help you write expressive defensive code in a functional manner

560,203 151
helgesverre/receipt-scanner

Use OpenAI to extract structured receipt and invoice data from Text, Html, Image...

9,751 145
suitmedia/laravel-cloudflare

Simple and easy cloudflare cache purging in Laravel

9,496 9
leknoppix/laravel-cloudflare

Simple and easy cloudflare cache purging in Laravel

3,427 0

Version History

Version Released PHP Laravel License
v4.0.1 ^7.4 || ^8.0 ^8 || ^9 || ^10 MIT
v4.0.0 ^7.3|^7.4|^8.0|^8.1|^8.2 ^8|^9|^10 MIT
v3.0.0 ^7.3|^7.4|^8.0|^8.1 ^8|^9 MIT
v2.0.2 ^7.3|^7.4|^8.0|^8.1 ^8|^9 MIT
v2.0.1 ^7.3|^7.4|^8.0|^8.1 ^8|^9 MIT