php - Laravel 通过遍历数组进行路由

标签 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);
    });
}

运行时遇到错误:“ 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/

相关文章:

php - 内部 gd 字体 () 不可用仅使用 1-5

php - 将信息添加到布局中,而无需在每个 Controller 上调用它

php - Laravel 多个 withCount 在同一个关系上

php - 如何通过 POSTMAN 模拟在 POST API 调用中发送表单数据

php mysql 在转换日期格式时的情况

php - 从sql表中提取链接作为可点击链接

php - 如何从 Laravel 中的 2 个连接中删除重复项

php - 如何在 Blade 中循环 Ajax 响应

javascript - Laravel:如何使用 public/app.js 中定义的 Blade 语法引用 javascript 函数

Laravel 5.2 App\Http\Controllers\Auth\AuthController@register 不存在