如何在 laravel 5.8 中将变量传递给路由?

How to pass variable into route in laravel 5.8?

routes/web.php

$urls = \App\Myurls::all();

foreach($urls as $url){
  Route::get($url->en,  function() {
    session(['lang'=> 'en']);
    return view( 'en.'.$url->view );
  });
}

错误:未定义的变量:url(在 return view() 行中)

如何将 $url 变量传递给 Route::get 函数?

您必须使用 function() use ($url)

$urls = \App\Myurls::all();

foreach($urls as $url){
  Route::get($url->en,  function() use ($url) {
    session(['lang'=> 'en']);
    return view( 'en.'.$url->view );
  });
}

您需要use closure中的变量:

Route::get($url->en,  function() use ($url) {
  session(['lang'=> 'en']);
  return view( 'en.'.$url->view );
});