У меня есть следующий код, который ведет себя точно так, как ожидалось:
View::addNamespace('template', [
storage_path().'/contexts/'.$context.'/views', // live edits
base_path().'/resources/views/context/'.$context, //template base
base_path().'/resources/views', // generic fallback
base_path().'/app/views/template1', // legacy fallback
]);
Я сделал буквально то же самое с Lang и Config, но они не работают вообще. Мое небольшое исследование показывает, что Config :: addNamespace и Lang :: addNamespace не принимают массив в качестве параметра hints.
В общем, у меня есть этот файл:
«Приложение / языки / EN / {$} контекст /home.php»
<?php return array(
'animal' => 'large cat',
);
где Lang :: get (‘home.animal’) обычно возвращает ‘small dog’, я бы вместо этого условно сказал «large cat», если бы выполнялся следующий код:
Lang::addNamespace('default', [
base_path().'app/lang/en/{$context}/',
base_path().'app/lang/en/',
]);
Поддерживает ли Laravel или любой пакет Laravel метод для этого с пространствами имен или без них?
Задача ещё не решена.
Других решений пока нет …