我正在尝试使用 Route::get 方法为我的应用程序设置 URL 结构,而无需为每个项目重复 Route::get。我正在使用 foreach 循环执行此操作,如下所示:
<?php
Route::get('/', function () {
return view('welcome');
});
$pages = array('about', 'contact', 'faqs');
foreach ($pages as $page) {
Route::get($page, function () {
return view($page);
});
}
运行时遇到错误:“ undefined variable :页面”。尽管我在 CMS 中使用过过程 PHP 和 PHP,但我对 Laravel 还很陌生。我在这里错过了什么?
最佳答案
$page
变量不在匿名函数 [A] 的范围内,您在其中定义了给定路由应响应的内容。下面的代码添加了 use ($page)
以便可以访问变量。
<?php
Route::get('/', function () {
return view('welcome');
});
$pages = array('about', 'contact', 'faqs');
foreach ($pages as $page) {
Route::get($page, function () use ($page) { // [A]
return view($page);
});
}
Here你可以阅读一些关于这种行为的细微差别的后续文章。
关于php - Laravel 通过遍历数组进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52647036/