Как я могу получить переводы с кодом страны из этого массива классов и показать их в моем файле блейда? Допустим, у меня есть код страны AF, и как я могу вернуться в Афганистан?
class TranslatedCountryCodes
{
private $translatedCodes = [];
private static $instance;
protected function __construct()
{
$this->translatedCodes = [
'AF' => __('Afghanistan', 'countrycode', 'myproject'),
'AX' => __('Aland Islands', 'countrycode', 'myproject')
];
}
public function commitTranslation()
{
return $this->translatedCodes;
}
/**
* @return static
*/
public static function getInstance()
{
if (is_null(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
}
я пытался
TranslatedCountryCodes::commitTranslation('AF')
Я искал некоторые вспомогательные функции, но не могу понять это
Правильный звонок TranslatedCountryCodes::getInstance()->commitTranslation();
. Но почему ты пропускаешь что-то? Метод не имеет аргументов. Вам нужно изменить его. public function commitTranslation(string $country) { return $this->translatedCodes[$country] ?? 'not found'; }
.
Вы можете сделать:
TranslatedCountryCodes::getInstance()->commitTranslation()['AF']
Я не могу вернуть его в файл лезвия. Показывает критическую ошибку.
@ in2d Что означает «критическая ошибка»? Кроме того, в каком пространстве имен вы определили этот класс? Наконец, какая у вас версия фреймворка Laravel?
Критическая ошибка как раз из Wordpress. Я использую пространство имен Database\Seeders. Я использую Ларавель 8.
@in2d Затем в вашем блейд-файле PHP попробуйте: {{ \Database\Seeders\TranslatedCountryCodes::getInstance()->commitTranslation()['AF'] }}
Это также приведет к критической ошибке Wordpress.
Не могу понять. Я пытаюсь использовать use \Database\Seeders\\TranslatedCountryCodes; $translation = новые коды переведенных стран(); но это также возвращает ошибку
@in2d Я не могу помочь вам, не увидев «критическую ошибку», которую, как вы утверждаете, вы получили с вашей стороны. 😑 Извините!
Это просто критическая ошибка Wordpress. Также в журнале консоли написано 500
Я думаю, что ошибка в том, что это защищенная функция
commitTranslation()
также должен быть статическим, когда вы вызываете его статически.