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

Posted

技术标签:

【中文标题】如何在 laravel 5.8 中将变量传递给路由?【英文标题】:How to pass variable into route in laravel 5.8? 【发布时间】:2020-01-23 23:31:51 【问题描述】:

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 函数?

【问题讨论】:

【参考方案1】:

您必须使用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 );
  );

【讨论】:

【参考方案2】:

你需要useclosure中的变量:

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

【讨论】:

以上是关于如何在 laravel 5.8 中将变量传递给路由?的主要内容,如果未能解决你的问题,请参考以下文章

如何有效地将子域名传递给 Laravel 中的控制器和视图

Laravel - 如何通过资源路由将变量传递给控制器​​?

Laravel - 如何通过路由组将变量传递给中间件?

Laravel 路由将变量传递给控制器

如何在Laravel 5.2中将表单数据作为路由参数传递

将 PHP 数组传递给 JS - PHP Laravel 5.8 [重复]