So I am trying to create a global scope in laravel 5.1 but just keep on getting the following error Trait 'Eloquent\Scopes\DependentTypeTrait' not found.
Here is my code:
App\Models\Eloquent\Scopes\DependentTypeTrait.php:
<?php namespace App\Models\Eloquent\Scopes;
trait DependentTypeTrait {
/**
* Boot the Active Events trait for a model.
*
* @return void
*/
public static function bootDependentTypeTrait()
{
static::addGlobalScope(new DependentTypeScope);
}
}
App\Models\Eloquent\Scopes\DependentTypeScope.php:
<?php namespace App\Models\Eloquent\Scopes;
use Illuminate\Database\Eloquent\ScopeInterface;
use Illuminate\Database\Eloquent\Builder;
class DependentTypeScope implements ScopeInterface
{
public function apply(Builder $builder)
{
$builder->where('vip_type_id', 2);
}
public function remove(Builder $builder)
{
$query = $builder->getQuery();
// here you remove the where close to allow developer load
// without your global scope condition
foreach ((array) $query->wheres as $key => $where) {
if ($where['column'] == 'vip_type_id') {
unset($query->wheres[$key]);
$query->wheres = array_values($query->wheres);
}
}
}
}
App\Models\Dependent.php:
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Eloquent\Scopes\DependentTypeTrait;
class Dependent extends Model
{
use DependentTypeTrait;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = '<my table name>';
/**
* The actual primary key for the model.
*
* @var string
*/
protected $primaryKey = '<my primary key>';
}
I feel like I have the namespacing correct but its still saying it can't find the attribute....any ideas?