I have created a middleware in laravel 5 called IpHitsCounter which uses a model called DeviceInfo which is inside App\Models\FrontEnd
<?php namespace App\Http\Middleware\FrontEnd;
use Closure;
use Request;
use BrowserDetect;
use App\Models\FrontEnd\DeviceInfo;
use DB;
class IpHitsCounter {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
DeviceInfo::create(['devices'=>$agentDevice,'deviceFamily'=>$deviceFamily]);
}
My Code for Model is:
<?php namespace App\Models\FrontEnd;
use Illuminate\Database\Eloquent\Model;
class DeviceInfo extends Model {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'client_device_infos';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['devices', 'deviceFamily'];
}
When doing so I am getting the following error: Class 'App\Models\FrontEnd\DeviceInfo' not found
although the class exists still I am getting the error.
I guess you forgot to register the middleware.
Open the file app/Http/Kernel.php
Look for the $routeMiddleware property.
protected $routeMiddleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'App\Http\Middleware\VerifyCsrfToken',
'App\Http\Middleware\FrontEnd\IpHitsCounter' // your middleware
];
UPDATE 1: 28th August, 2016
Since Laravel 5.3.* is released, there are some configurations in the routes file. Before 5.3, there was only 1 file called routes.php, but now, there are 2 files, web.php and api.php and both of these files are listed at the root directory of projects inside routes folder. Feel free to check it out.
Coming to the solution, you need to open app/Http/Kernel.php and edit the $middlewareGroups having the key of web. So, it should look somewhat like this:
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\FrontEnd\IpHitsCounter::class // your middleware
],
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With