0

Web サイトでメディアを管理するために Sonata MediaBundle をインストールしました。すべて正常に動作していますが、今度は MediaController の viewAction をカスタマイズする必要があります。元の MediaController をコピーして変更しました。着席ですsrc/Application/Sonata/MediaBundle/Controller。を使用して MediaBundle を拡張したときにそのフォルダーが作成されたので、そこに置きましたeasy-extends。ルーティングに注釈を使用しているため、ルーティング ファイルの関連部分は次のようになります。

media:
    resource: '@Application/Sonata/MediaBundle/Controller'
    type:     annotation
    prefix: /media

私のコントローラーはこのように見えます:

 /**
 * Log controller.
 *
 * @Route("/media")
 */
class MediaController extends BaseMediaController {
/**
 * @throws NotFoundHttpException
 *
 * @param string $id
 * @param string $format
 *
 * @return Response
 *
 * @Route("/view/{video_id}", name="media_view")
 * @Method("GET")
 * @Template()
 */
public function viewAction($id, $format = 'reference')
{
    $media = $this->getMedia($id);

    if (!$media) {
        throw new NotFoundHttpException(sprintf('unable to find the media with the id : %s', $id));
    }

    if (!$this->get('sonata.media.pool')->getDownloadSecurity($media)->isGranted($media, $this->getRequest())) {
        throw new AccessDeniedException();
    }

    return $this->render('SonataMediaBundle:Media:view.html.twig', array(
        'media'     => $media,
        'formats'   => $this->get('sonata.media.pool')->getFormatNamesByContext($media->getContext()),
        'format'    => $format
    ));
}
}

注釈を除いて、これまでのところ変更はありません。URL にアクセスしようとすると、次のエラーが表示されます。http://my-server/media/view/4

 Cannot load resource "@Application/Sonata/MediaBundle/Controller". Make sure the "Application/Sonata/MediaBundle/Controller" bundle is correctly registered and loaded in the application kernel class.
500 Internal Server Error - FileLoaderLoadException 

バンドルは AppKernel.php にロードされます。

new Application\Sonata\UserBundle\ApplicationSonataUserBundle(),

ここで何が問題なのか分かりますか? ルートの書き方をいろいろ試してみましたが、何も変わりません。MediaCONtroller をオーバーライドするより良い方法はありますか? 前もって感謝します。

4

1 に答える 1

0

最後に、私は何が起こったのかを知ることができました。リファクタリング op ​​により、routing.yml からルートをインポートした _main ルートapp/configが変更され、もちろん存在しない media.yml をインポートしようとしていました。PHPStorm が持つローカル履歴機能のおかげで、私はそれを発見しました。質問を見てくださった皆様、ありがとうございました。

于 2013-09-10T03:07:44.100 に答える