2016-06-02 20 views
1

ドキュメントに直接アクセスするルートを作ってみたい。 たとえば、domain/file/document.pdfにアクセスしますが、domain/docにアクセスします。スリム3ファイルへの直接アクセス

$app->get('/docs/v1', function ($request, $response){ 
    $this->view->render($response, '/docs/document.pdf'); 
}); 

しかし、それは動作しません:

は、私はこれを試してみました。私はまた、公式ドキュメントでこれを見た:

$app = new \Slim\App(); 
$app->get('/hello', function ($req, $res) { 
    $this['view']->display('profile.html', [ 
     'name' => 'Josh', 
     'url' => 'https://joshlockhart.com' 
    ]); 
}); 

しかし、表示機能は存在しません。

Fatal error: Call to undefined method Slim\Views\PhpRenderer::display() 

は、たぶん私は、私は、docで何かを見つけることができませんでした、私は知らない、何かを逃しました。

ありがとうございます!

答えて

1

ここにいくつかのポイント:スリムv3では

1)は、 "$この[ 'ビュー']は、" 一般的に、あなたの小枝レンダラを指します。だからあなたはTwigレンダラを呼び出そうとしていますが、これはおそらくあなたがこの場合にしたいことではありません。直接文書にアクセスするためとして

2)小枝レンダラを呼び出し、それが出力のリターンする正しい構文は

return $this->view->render ($response, 'yourTemplate.twig', [ ... array of parameters goes here ...]); 

3である)(私は前にこれをやったことがないので、私の答えは間違っている可能性があります)

return $response->withRedirect ((string)($request->getUri()->withPath('path/to/document'))); 

、ちょうどそのドキュメントタイプを処理する方法と、ブラウザの契約をしてみましょう:あなたは、おそらくこのような文書自体にリダイレクトします。

これが役に立ちます。