所以我想在laravel 5.1中創建一個全局範圍,但只是繼續得到以下錯誤Trait 'Eloquent\Scopes\DependentTypeTrait' not found
。Laravel 5.1問題實施全球範圍
這裏是我的代碼:
應用程序\型號\雄辯\作用域\ 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);
}
}
應用程序\型號\雄辯\作用域\ 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>';
}
我覺得我的命名空間正確,但它仍然說它無法找到屬性....任何想法?
你是對的!我假設,因爲該模型上的名稱空間是App \ Namespace,我不必在使用中添加此... –