【发布时间】:2016-03-05 15:16:04
【问题描述】:
所以我试图在 laravel 5.1 中创建一个全局范围,但只是继续收到以下错误 Trait 'Eloquent\Scopes\DependentTypeTrait' not found。
这是我的代码:
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>';
}
我觉得我的命名空间是正确的,但它仍然说它找不到属性....有什么想法吗?
【问题讨论】: