Зарегистрируйте новый глобальный охват в Laravel - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу зарегистрировать новую глобальную область в Laravel 5.7, но я получил следующую ошибку:

Symfony \ Синтаксис \ Debug \ Exception \ FatalThrowableError (E_PARSE) синтаксическая ошибка, неожиданная «статическая» (T_STATIC)

<?php

namespace App;

use Auth;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Order extends Model
{
    use SoftDeletes;

    /**
    * Anonymous scope
    */
    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope('authenticated', function (Builder $builder) {
            $builder->where('id_user', '=', Auth::id());
        });
    }
}

Я использую laravel 5.7 PHP 7.2

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вы пытаетесь добавить анонимную глобальную область, что совершенно нормально, но вам нужно использовать Eloquent \ Builder для этого подхода к работе (это, похоже, не соответствует вашей точной ошибке, однако вам понадобится это), поэтому добавьтеследующий к вашему классу и посмотреть, если ошибка изменится !!

use Illuminate\Database\Eloquent\Builder;
0 голосов
/ 28 ноября 2018

Документы по глобальным областям действия в 5.7 предполагают, что вы должны реализовывать их не так, как вы здесь.https://laravel.com/docs/5.7/eloquent#global-scopes.

Вам необходимо реализовать класс Scope, а затем создать метод apply().

...