Я пытаюсь подать заявку на globalscope, ведьма использует данные зарегистрированного пользователя, затем я пытаюсь получить зарегистрированного пользователя, но получил нулевое значение.
namespace tracker;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Auth;
use tracker\Scopes\IntegradorScope;
class Cliente extends Model
{
use Notifiable;
protected $table = "clientes";
protected $casts = [
'reter_iss' => 'boolean',
'simples_nacional' => 'boolean',
'taxa_emissao_boleto' => 'boolean'
];
public function integradores()
{
return $this->belongsToMany('tracker\Integrador', 'integrador_cliente', 'cliente_id', 'integrador_id');
}
public function veiculos()
{
return $this->hasMany('tracker\Veiculo', 'cliente_id', 'id');
}
public function usuarios()
{
return $this->hasMany('tracker\User', 'cliente_id', 'id');
}
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
if (php_sapi_name() != 'cli') {
$user = Auth::user();
if (is_object($user)) {
if ($user->role->first()->label == 'cliente') {
static::addGlobalScope('Cliente', function ($builder) use ($user) {
$builder->where('id', $user->cliente_id);
});
} elseif ($user->role->first()->label != 'admin' && $user->integrador_id != 0) {
static::addGlobalScope('Integrador', function ($builder) use ($user) {
$builder->whereHas('integradores', function ($q) use ($user) {
$q->where('integrador_id', $user->integrador_id);
});
});
}
}
}
}
}
В загрузкеметод я не могу получить пользователя по фасаду Auth.У меня уже есть другие модели, которые получают зарегистрированного пользователя, как этот код, но эта модель не получает зарегистрированного пользователя.
Есть ли какое-то решение для этого?