我正在启动Laravel,以下工作正常:
Route::get('users', function()
{
return 'Users!';
});
然而,这不起作用:
$test = function()
{
return 'Users!';
}
Route::get('users', $test);
为什么会这样?
答案 0 :(得分:1)
尝试启用错误报告(error_reporting(-1);
),这样PHP就会抛出语法错误。你错过了一个分号:
$test = function()
{
return 'Users!';
};
分号是必要的原因是因为您要为变量设置值。如果您只是定义一个函数(function test() {}
),则不需要分号。
要实际使用function test() {}
之类的已定义函数,您需要在Laravel中设置Controllers。例如:
应用程序/控制器/ TestController.php
class TestController extends BaseController
{
public function index()
{
return 'Users!';
}
}
应用程序/ routes.php文件
Route::get('users', 'TestController@index');
注意:只要您向存储库添加新类(即composer dump-autoload
),就需要运行TestController
。