问:我有一个问题,但后来我回答了,所以我认为这可能会帮助将来可能遇到相同问题的人。
我尝试像视频中的汉普顿一样创建$ app对象,但不断出现上述错误。自从制作此视频以来,Slim已经过渡到3.X,我便能够解决它(汉普顿使用Slim的2.6.X迭代)。根据Slim随附的自述文件,该类现在是Slim \ App,而不是Slim \ Slim。当我使用$ app = new \ Slim \ App(); 错误已解决。此外,echo语句的工作原理也不相同,但是在同一自述文件中还包含执行相同操作的函数。我在vendor / slim / slim文件夹中找到了该文件。
答:好的,Slim / Views也与Slim 3.0不兼容,因此要使Slim 3.0与Twig模板文件一起使用,您需要执行以下操作。
来自作曲家:
需要Slim / Slim
需要Slim / Twig-view
如果您已经添加了苗条/视图
删除Slim / Views
然后在php中,您需要使用以下代码段来使树枝文件运行
//初始化模板的使用
//确保调试
$ configuration = [
'设置'=> [
'displayErrorDetails'=> true,
],
];
//创建容器
$ container = new \ Slim \ Container($ configuration);
//在容器上注册组件
$ container ['view'] =函数($ c)
{
$ view = new \ Slim \ Views \ Twig('templates',[
'cache'=>'cache'
]);
$ view-> addExtension(new \ Slim \ Views \ TwigExtension
(
$ c ['router'],
$ c ['request']-> getUri()
));
返回$ view;
};
//创建应用
$ app =新\ Slim \ App($ container);
//在路线**中渲染Twig模板
$ app-> get('/',function($ request,$ response,$ args)
{
返回$ this-> view-> render($ response,'login.twig',
[
'name'=>“登录“
”);
})-> setName('home');
//运行应用
$ app-> run();
此代码的注释:
**在文档中,此代码段最初是
$ app-> get('/ hello / {name}',function($ request,$ response,$ args)
{
返回$ this-> view-> render($ response,'profile.html',[
'name' => $ args ['name']
]);
})-> setName('profile');
我更改了代码
$ app-> get('/ hello / {name}',函数($ request,$ response,$ args)
至
$ app-> get('/',函数($ request,$ response,$ args)
因为我希望这能捕获到我主页的请求,然后我也进行了更改
'名称'=> $ args ['名称']
至
'名称'=>“登录”
作为消除我未在页面上使用的{name}组件的错误消息的快速方法。因为我没有传递任何参数,所以我决定将其硬编码为String值,以使所有工作顺利进行: