2

This is my web.php file :

<?php $current_language = app()->getLocale();
Route::get('/',function(){ return view('fr/accueil');});
Route::get('/test',function(){ return view('{$current_language}/test');});

but the current_language variable is not recognized by Laravel, it says that "View [{$current_language}.test] not found.", However, I have fr/test and ar/test blade views. How, Can I pass the value of $current_language? Thanks, a lot.

1 Answer 1

3

Add use key word to define the $current_language inside the anonymous function :

<?php $current_language = app()->getLocale();
Route::get('/',function(){ return view('fr/accueil');});
Route::get('/test',function() use($current_language){ 
    return view($current_language.'/test');
});

To get the last value of the language you shoud add the app()->getLocale() because the first implementation will return the first value assigned to the $current_language variable so you can do it like this :

Route::get('/test',function(){ 
    return view(app()->getLocale().'/test');
});
Sign up to request clarification or add additional context in comments.

4 Comments

Hi , thank you a lot , It worked but It doesn't show what I expected to view, $current_language value don't change after I change language, I don't know why. in the return view($current_language.'/test'); it still fr even if the language is in arabic.
Try to do app()->getLocale() inside the clousure of the route like this return view(app()->getLocale().'/test');
Maraboc you are a genius ! Thanks a lot it worked perfectly <3
Happy to help :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.