Добрый день,
Хотел заюзать php8 на
lumen проекте, апнул локально через
apt-get install
и столкнулся с проблемой при вызове:
User::has('profile')->get();
class User extends Model implements AuthenticatableContract, AuthorizableContract, JWTSubject
public function profile()
{
return $this->hasOne(Profile::class);
}
...
}
Class Illuminate\Database\Eloquent\Relations\HasOne contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Database\Eloquent\SupportsPartialRelations::getOneO
fManySubQuery)
Появилось предположение, что какая-то либа
lumen из vendor еще не готова работать с
php8
Сделал:
sudo apt-get purge php7.*
sudo apt-get purge php8.*
sudo apt-get autoclean
sudo apt-get autoremove
Установил снова
7.4 с уверенностью что вернувшись к исходному состоянию, все заработает корректно. Но проблема осталась.
sudo apt-get install -y php7.4 php7.4-common php7.4-fpm php7.4-cli php7.4-imagick php7.4-gd php7.4-intl; \
sudo apt-get install -y php7.4-pgsql; \
sudo apt-get install -y php7.4-zip; \
sudo apt-get install -y php7.4-xml; \
sudo apt-get install -y php7.4-mbstring;
php -v
PHP 7.4.18 (cli) (built: May 3 2021 11:27:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.18, Copyright (c), by Zend Technologies
Пробовал:
composer clearcache
rm -rf vendor composer.lock
composer install
Но тщетно.