私はブログサイトを持っています。唯一のエンティティは、Blogposts と Users です。これらのブログ投稿を、モバイル用の json GET で表示できるようにしたいと考えています。しかし、HTML (およびもちろん CSS) を返すだけのデフォルトの GET ルートも必要です。
もちろん、私は周りを見回しましたが、ウェブサイトを JSON のみを出力する以外に、FOSRestBundle をもう少し深く掘り下げた素晴らしいチュートリアルを見つけることができないようです (もちろん、私はひどく間違ったことをしている可能性があります)。
現在、ルートを設定すると、デフォルト ルートとして JSON しか取得できません。.json
URLで行う場合はJSON出力を取得し、デフォルトルートの場合はHTMLを取得したい。これは私のルートがどのように見えるかです:
_welcome:
pattern: /
defaults: { _controller: TestTestingBundle:Main:homepage, _format: json }
これが MainController.php です。
<?php
namespace Test\TestingBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\View\View;
class MainController extends Controller
{
public function homepageAction()
{
$latestposts = $this->getLatestBlogs();
$posts = $this->trimContent($latestposts);
$view = View::create(array('lastblogs' => $posts))
->setStatusCode(200)
->setEngine('twig')
->setTemplate(new TemplateReference('TestTestingBundle', 'Index', 'index'))
->setData($latestposts);
return $this->get('fos_rest.view_handler')->handle($view);
}
}
今のところ、訪問するlocalhost/Symfony/web/app_dev.php/
とJSON出力が得られます。しかし、に行く場合にのみ JSON を取得したいのですlocalhost/Symfony/web/app_dev.php/.json
。どうすればいいですか?
さらにコードが必要な場合は、コメントしてください。