通过循环遍历数组进行Laravel路由

Chr*_*nan 3 php laravel laravel-5

我试图使用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);
    });
}
Run Code Online (Sandbox Code Playgroud)

运行时,我遇到错误:"未定义的变量:页面".虽然我在CMS中使用过程PHP和PHP工作很多,但我对Laravel来说相当新.我在这里错过了什么?

mat*_*iit 6

$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);
    }); 
}
Run Code Online (Sandbox Code Playgroud)

在这里,您可以阅读一些有关此行为的细微差别的后续内容.