Проблема заключается в том, что для вашего маршрута требуется параметр. lang/{language}
При выполнении сообщения формы вам не нужно требовать параметр. Кроме того, вам нужно, чтобы ваша форма была POST
не GET
Так что сделайте что-то подобное.
Маршрут:
Route::post('/lang', [
'uses' => 'LanguageController@changeLanguage',
'as' =>'site.translate'
]);
Вид:
<div class="col-6 col-lg-3 pt-4 pb-4">
<div class="footer-list">
<h3>Language</h3>
<form method="post" action="{{route('site.translate')}}">
{{csrf_field()}}
<select name="language" class="form-control font-weight-normal text-gray" id="exampleFormControlSelect1">
<option selected class="selected" value="de">German</option>
<option value="en">English</option>
<option value="de">German</option>
<option value="es">Spanish</option>
</select>
</form>
</div>
</div>
Контроллер:
class LanguageController extends Controller
{
public function changeLanguage(Request $request)
{
if(Session::has(locale)){
session()->set('locale', $request->language);}
else{
session()->set('locale', 'en');
}
return redirect()->back();
}
}
MutableList - это интерфейс в kotlin. Чтобы объявить переменную, нам нужно использовать класс наподобие
val list2: ArrayList<String>
@Josef Zoller
В Котлине нет типа (Mutable)List
.
Это служит признаком того, что тип списка, возвращаемого Example.getList()
, не будет определен во время времени компиляции , но будет решен во время времени выполнения .
В вашем случае это будет List
, а не MutableList
, потому что Arrays.asList()
возвращает FixedSizeList
.
Если вы реализовали Example.getList()
следующим образом:
public static List<String> getList() {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
return list;
}
, то во время времени выполнения тип вашего list
будет MutableList
.
Это инструментальная подсказка IDEA, которая показывает, что этот список может быть таким же MutableList, как List, поскольку Example
является классом Java и может возвращать любой из списков типов.
Кроме того, то же самое происходит со String: вы ничего не знаете об обнуляемости списка String, так как он возвращается из Java, поэтому String выглядит как String!
, что означает «может быть, это ноль, но или нет», не влияя на компиляцию (т. е. вы можете вызывать методы для него без проверки на нуль, как для проверки на нуль: предупреждения не появятся).