質問 > フロント機能 > 新規で作成したページにコントローラーでDB操作したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
boss12 |
投稿日時: 2017/2/22 22:03
対応状況: −−−
|
常連 登録日: 2016/2/17 居住地: 投稿: 53 |
新規で作成したページにコントローラーでDB操作したい [EC-CUBE] EC-CUBEのバージョン3.09
[レンタルサーバ] CPI [OS] mac [データベース] mysql [ブラウザ] chrome 新規でページを作成すると、user_data/〇〇というような形でURLが生成されるかと思います。 まず、test.twigというページを作成しました。 中身は以下になります。 {% extends 'default_frame.twig' %} {% block main %} テストです。 {{ test }} {% endblock %} 次に、Eccube/Controller以下にTestController.phpを作成し、中身は以下になります。 <?php namespace Eccube\Controller; use Eccube\Application; use Symfony\Component\HttpFoundation\Request; class TestController { /** *テスト * * @param Application $app * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ public function index(Application $app, Request $request) { $test = 'hello world'; return $app->render('user_data/test.twig', array( 'test' => $test, )); } } 最後に、FrontControllerProvider.phpにいかを追加しました。 $c->match('/user_data/test', '\Eccube\Controller\TestController::index')->bind('test'); しかしページにアクセスしてみると、「テストです」しか表示されません。 Hello world を出力できるようにしたいのですが、どのようにしたらよいでしょうか? よろしくお願いいたします。 |
aoki.u |
投稿日時: 2017/2/22 22:26
対応状況: −−−
|
常連 登録日: 2017/2/19 居住地: 投稿: 53 |
Re: 新規で作成したページにコントローラーでDB操作したい
よりも前の行に書いてもダメでしょうか?
|
boss12 |
投稿日時: 2017/2/23 6:26
対応状況: −−−
|
常連 登録日: 2016/2/17 居住地: 投稿: 53 |
Re: 新規で作成したページにコントローラーでDB操作したい ご回答いただいたように、前の行に記述してみましたところ、
「システムエラーが発生しました。」となってしまい、表示できませんでした。 index_dev.phpをつけ確認しましたら、以下のエラーとなっていました。 Twig_Error_Loader in Chain.php line 63: Template "user_data/test" is not defined. コントローラーのエラー箇所をいろいろなパスを試しても同じく、パス名のみ変わり、エラーが出ました。 |
umebius |
投稿日時: 2017/2/23 9:24
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 新規で作成したページにコントローラーでDB操作したい aoki.uさんのコードに加えて、
コントローラで下記コードを追加
また、 render('user_data/test.twig'ではなく、 render('test.twig'に変更してみてください
|
boss12 |
投稿日時: 2017/2/23 15:35
対応状況: −−−
|
常連 登録日: 2016/2/17 居住地: 投稿: 53 |
Re: 新規で作成したページにコントローラーでDB操作したい ありがとうございます。
実現しました。 しかし、{% extends 'default_frame.twig' %} が中途半端に効くようになったのか、headerの中身がうまく表示できません。 ルーティングを解除すると、Headerが表示されます。 どのようにすれば解決できるでしょうか? |
aoki.u |
投稿日時: 2017/2/24 7:20
対応状況: −−−
|
常連 登録日: 2017/2/19 居住地: 投稿: 53 |
Re: 新規で作成したページにコントローラーでDB操作したい おそらくdtb_page_layoutテーブルに情報がうまく登録されていないのでは
phpMyAdminなどでのぞいてみてください
|
boss12 |
投稿日時: 2017/2/24 17:07
対応状況: 解決済
|
常連 登録日: 2016/2/17 居住地: 投稿: 53 |
Re: 新規で作成したページにコントローラーでDB操作したい 本当でした!
URLのところをcontrollerProviderのに変更したらうまく表示されました! ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |