質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

Q&A

解決済

1回答

2763閲覧

Catchable Fatal Error: Argument 1 passed to ...must be an instance of...none given,のエラー原因が分かりません。

youplus40

総合スコア19

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

0グッド

0クリップ

投稿2020/12/17 03:32

前提・実現したいこと

既存のシステムのsymfony、phpのバージョンアップ作業をしておりまして、
エラーが発生しました。
恐らく、getRequest()メソッドの廃止でRequest $requestの追加などを行った影響によりエラーが出ております。
型が違うだけであれば対応はできるのですが、none givenとそもそも値を得られていない場合の、エラーの原因を調査する方法を教えていただきたいです。
初歩的な質問で恐縮ですが、よろしくお願いいたします。

発生している問題・エラーメッセージ

Catchable Fatal Error: Argument 1 passed to Ahi\Sp\PublicBundle\Controller\BaseController::getSidebarParams() must be an instance of Symfony\Component\HttpFoundation\Request, none given, called in /home/vagrant/Symfony2/src/Ahi/Sp/PublicBundle/Controller/PortalController.php on line 102 and defined

該当のソースコード

PHP

1//BaseController.php 2 abstract class BaseController extends Controller 3{ 4 /** 5 * サイドバーのデータを取得 6 * 7 * @param Brand $brand ブランドエンティティ 8 * @param Shop $shop ショップエンティティ 9 * 10 * @return $SidebarParams サイドバーに使うパラメータを返す 11 */ 12 public function getSidebarParams(Request $request) 13 { 14 $brand = null; 15 $shop = null; 16 $SidebarParams = null; 17 $coordinateService = $this->get('public.coordinateService'); 18 if (!$brand && !$shop) { //ポータルの画面で使用するサイドバー 19 //全てのブランドを取得する 20 $brands = $this->get("public.brandService")->getAllBrand(); 21 $SidebarParams['brands'] = $brands; 22 23 //コーディネートランキングを5件取得する 24 $rankingCoordinates = $coordinateService->getRanking($brand, $shop, 5, 0, $this->paramsSex); 25 $SidebarParams['rankingCoordinates'] = $rankingCoordinates; 26 27 // キャンペーン(SPと共通化しました) 28 $SidebarParams['campaign'] = $this->service('ecEvent')->getEvents($this->gender,5); 29 30 } elseif (!$shop) { //ブランド内の画面で使用するサイドバー 31 $SidebarParams['brand'] = $brand; 32 33 //ブランド内のショップを取得しエリア毎に分ける 34 $shopService = $this->get('public.shopService'); 35 $areaShops = $shopService->getAreaShops($brand, $this->gender); 36 $SidebarParams['areaShops'] = $areaShops; 37 38 //ブランド内コーディネートランキングを5件取得 39 $rankingCoordinates = $coordinateService->getRanking($brand, $shop,5, 0, $this->paramsSex ); 40 $SidebarParams['rankingCoordinates'] = $rankingCoordinates; 41 42 //ブランド内新着コーディネートを5件取得 43 $newCoordinates = $this->get('public.coordinateService')->getArticles($brand, null, 5, 0, $this->paramsSex); 44 $SidebarParams['newCoordinates'] = $newCoordinates; 45 46 // キャンペーン(SPと共通化しました) 47 $SidebarParams['campaign'] = $this->service('ecEvent')->getEvents($brand,5); 48 49 } else { //ショップ内の画面で使用するサイドバー 50 //ショップ情報を取得するためショップエンティティを取得 51 $SidebarParams['shop'] = $shop; 52 53 $areaShops = $this->get('public.shopService')->getAreaShops($shop->getBrand(), $t 54his->gender); 55 $SidebarParams['areaShops'] = $areaShops; 56 57 //ショップ内コーディネートランキングを5件取得 58 $rankingCoordinates = $coordinateService->getRanking($shop->getBrand(), $shop, 5, 59 0, $this->paramsSex); 60 $SidebarParams['rankingCoordinates'] = $rankingCoordinates; 61 62 //ショップ内新着コーディネートを5件取得 63 $newCoordinates = $coordinateService->getArticles($shop->getBrand(), $shop,5, 0, $this->paramsSex); 64 $SidebarParams['newCoordinates'] = $newCoordinates; 65 66 //ショップTOPと同じキャンペーンを3件取得 67 $SidebarParams['campaign'] = array(); 68 69 //ブログの個別ブランド内で最新ブランドキャンペーンを3件取得 70 // $brandEvents = $this->get('public.brandEventService')->getBrandSingleEventArticles($shop->getBrand(),'campaign', 3, 0, $this->paramsSex); 71 72 // //ブランドECキャンペーンを取得 73 // $ecEvents = $this->get('public.ecEventService')->getBrandEcEvents($shop->getBr 74and(),3, $this->gender); 75 76 // //ショップ固有のキャンペーン3個 77 // $shopEvents = $this->get('public.shopEventService')->getShopSingleEventArticles($shop,'campaign', 3, 0, $this->paramsSex); 78 79 //ブランド、EC、ショップのイベントを3個取得 80 // $SidebarParams['campaign'] = $this->getArrangeAllEvents($brandEvents, $ecEvents, $shopEvents); 81 82 // //3件に絞る 83 // $SidebarParams['campaign'] = array_slice($SidebarParams['campaign'], 0, 3); 84 // //ブランドECキャンペーンを取得 85 // $ecEvents = $this->get('public.ecEventService')->getBrandEcEvents($shop->getBrand(),3, $this->gender); 86 87 // //ショップ固有のキャンペーン3個 88 // $shopEvents = $this->get('public.shopEventService')->getShopSingleEventArticles($shop,'campaign', 3, 0, $this->paramsSex); 89 90 //ブランド、EC、ショップのイベントを3個取得 91 // $SidebarParams['campaign'] = $this->getArrangeAllEvents($brandEvents, $ecEvents, $shopEvents); 92 93 // //3件に絞る 94 // $SidebarParams['campaign'] = array_slice($SidebarParams['campaign'], 0, 3); 95 // キャンペーン(SPと共通化しました) 96 $SidebarParams['campaign'] = $this->service('ecEvent')->getEvents($shop,5); 97 98 //お気に入り店舗登録しているかチェック 99 $session = $request->getSession(); 100 $favoriteShops = $session->get('favoriteShops'); 101 $SidebarParams['isFavoriteShop'] = false; 102 103 if ($favoriteShops) { 104 foreach ($favoriteShops as $favoriteShop) { 105 if ($favoriteShop['shopDir'] == $shop->getDirName()) { 106 $SidebarParams['isFavoriteShop'] = true; 107 break; 108 } 109 } 110 } 111 } 112 return $SidebarParams; 113 } 114

PHP

1//PortalController.php 2 //サイドバーのデータ取得 3 $sideBar = $this->getSidebarParams(); //line102 4

補足情報(FW/ツールのバージョンなど)

PHP 5.6
Symfony 3.0.9
Cent OS 6.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

下記で解決しました。

//PortalController.php //サイドバーのデータ取得 $sideBar = $this->getSidebarParams($request);

投稿2020/12/18 08:39

youplus40

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問