0
私が持っている私は、ユーザーのすべてのチケットを取るためのグローバルスコープを追加しますが、時には、私はどのように行うことができ、この範囲ずにチケットを使用したい laravel 4.2と無視グローバルスコープ
(TicketModel)と呼ばれるモデル雄弁、それ?どのようにこの範囲にを無視することができ、これはあなたが適用範囲を必要とする場合のために子クラスが約モデル
<?php
class TicketModel extends Eloquent{
public $timestamps = false;
public static function boot()
{
static::addGlobalScope(new TicketScope);
}
}
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\ScopeInterface;
class TicketScope implements ScopeInterface {
public function apply(Builder $builder)
{
$builder->where('user_id', '=', Auth::user()->id_user);
}
public function remove(Builder $builder){}
}
が、私はより多くを持っています15個のモデルよりも、すべてのクラスを拡張する必要があります – mubarmg
クラスの拡張は1回限りの作業です。スコープを必要としないことを、あなたのモデルに、瞬時に、あるいは別の言葉で伝える必要があります。もう1つの方法は、スコープを無視するたびに(モデルがインスタンス化される前に)メソッドを呼び出すことです。これは、与えられたスクリプト内で複数回ということを意味します...クラスの拡張は大きな問題ではありません。あなたのモデルには、それが何であるかを意味する名前があります。あなたは、タイプヒントのためにそれを使用するかもしれません。 – Arcesilas
Laravel 5.2のコンテナでは、あなたの場合に便利な[コンテキストバインディング](https://laravel.com/docs/5.2/container#contextual-binding)が可能です...しかし、Laravel 4.2 ...:/ – Arcesilas