我在我的Symfony 3应用程序中启用了ESI,我将其用于app_dev.php:
$kernel = new AppKernel('dev', true);
$kernel = new AppCache($kernel);
Run Code Online (Sandbox Code Playgroud)
现在我有config.yml:
framework:
esi: { enabled: true }
fragments: { path: /_fragment }
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
/**
* @Route("/foo/bar/{fooId}", name="AppBundle_Foo_bar")
*/
public function barAction(int $fooId, Request $request)
{
//some database querying from repositroy
$response = $this->render('AppBundle:Foo:bar.html.twig',['foo' => $foo]);
$response->setETag(md5($response->getContent()));
$response->setPublic();
$response->isNotModified($request);
return $response;
}
Run Code Online (Sandbox Code Playgroud)
这是bar.html.twig我要缓存的view(),如下所示:
{{foo}}
Run Code Online (Sandbox Code Playgroud)
现在,我有另一种渲染主视图的方法.
/**
* @Route("/baz/{fooId}", name="AppBundle_Foo_baz")
* @Template
*/
public function bazAction(int $fooId)
{
return [
'fooId' => $fooId
];
} …Run Code Online (Sandbox Code Playgroud) 我有要求更新页面.添加新页面请求时如下:
'title'=>'required|max:70|unique:pages',
Run Code Online (Sandbox Code Playgroud)
但是当我更新页面标题必须是唯一的但需要检查除已经输入的所有其他标题.我在谷歌搜索了所有可能的解决方案,但没有任
我试过了:
'title'=>"required|max:70|unique:pages, title,{$this->id}",
'title'=>'required|max:70|unique:pages, title,'.$this->id,
'title'=>'required|max:70|unique:pages, title,'.$this->input('id'),
Run Code Online (Sandbox Code Playgroud)
规则是内部规则方法
public function rules()
{
return [
'title'=>'required|max:70|unique:pages, title,'.$this->id,
...
]
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column ' title' in 'where clause' (SQL: select count(*) as aggregate from `pages` where ` title` = test and `id` <> )
Run Code Online (Sandbox Code Playgroud)
在我的mysql中,我有id(小写)列,它是主键和标题列(也是小写).