It's telling you that your missing your view file which would be /pages/normal.blade.php in your views folder.
return view('pages.'.$page->template, $this->data); in your page controller sets this.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hi. I'm using Backpack PageManagerand I have created a page called "about" about with a template called "normal". But when I try to access to "site_name/about", I get a error saying " InvalidArgumentException View [pages.normal] not found". I've checked many times but I don't see what's wrong. Can someone help me ?
My routes/web.php
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::group(['prefix' => 'admin', 'middleware' => 'admin'], function(){
CRUD::resource('customer','Admin\CustomerCrudController');
});
Route::get('{page}/{subs?}', ['uses' => 'PageController@index'])
->where(['page' => '^(((?=(?!admin))(?=(?!\/)).))*$', 'subs' => '.*']);
PageManagerServiceProvider.php
<?php
namespace Backpack\PageManager;
use Route;
use Illuminate\Routing\Router;
use Illuminate\Support\ServiceProvider;
class PageManagerServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Where the route file lives, both inside the package and in the app (if overwritten).
*
* @var string
*/
public $routeFilePath = '/routes/backpack/pagemanager.php';
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
// publish views
$this->publishes([__DIR__.'/resources/views' => base_path('resources/views')], 'views');
// publish PageTemplates trait
$this->publishes([__DIR__.'/app/PageTemplates.php' => app_path('PageTemplates.php')], 'trait');
// publish migrations
$this->publishes([__DIR__.'/database/migrations' => database_path('migrations')], 'migrations');
// public config
$this->publishes([__DIR__.'/config/pagemanager.php' => config_path('backpack/pagemanager.php')]);
// public languages
$this->publishes([__DIR__.'/resources/lang' => resource_path('lang/vendor/backpack')], 'lang');
$this->mergeConfigFrom(__DIR__.'/config/pagemanager.php', 'backpack.pagemanager');
$this->loadViewsFrom(realpath(__DIR__.'/resources/views/vendor/backpack/crud'), 'pagemanager');
}
/**
* Define the routes for the application.
*
* @param \Illuminate\Routing\Router $router
* @return void
*/
public function setupRoutes(Router $router)
{
// by default, use the routes file provided in vendor
$routeFilePathInUse = __DIR__.$this->routeFilePath;
// but if there's a file with the same name in routes/backpack, use that one
if (file_exists(base_path().$this->routeFilePath)) {
$routeFilePathInUse = base_path().$this->routeFilePath;
}
$this->loadRoutesFrom($routeFilePathInUse);
}
/**
* Register any package services.
*
* @return void
*/
public function register()
{
$this->setupRoutes($this->app->router);
}
}
PageController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Backpack\PageManager\app\Models\Page;
use App\Http\Controllers\Controller;
class PageController extends Controller
{
public function index($slug, $subs = null)
{
$page = Page::findBySlug($slug);
if (!$page)
{
abort(404, 'Please go back to our <a href="'.url('').'">homepage</a>.');
}
$this->data['title'] = $page->title;
$this->data['page'] = $page->withFakes();
return view('pages.'.$page->template, $this->data);
}
}
Customer.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\CrudTrait;
class Customer extends Model
{
use CrudTrait;
/*
|--------------------------------------------------------------------------
| GLOBAL VARIABLES
|--------------------------------------------------------------------------
*/
protected $table = 'customers';
// protected $primaryKey = 'id';
// public $timestamps = false;
// protected $guarded = ['id'];
protected $fillable = ['name', 'email', 'phone'];
// protected $hidden = [];
// protected $dates = [];
/*
|--------------------------------------------------------------------------
| FUNCTIONS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| RELATIONS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| SCOPES
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| ACCESORS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| MUTATORS
|--------------------------------------------------------------------------
*/
}
It's telling you that your missing your view file which would be /pages/normal.blade.php in your views folder.
return view('pages.'.$page->template, $this->data); in your page controller sets this.
Please or to participate in this conversation.