バージョン選択

フォーラム

メニュー

オンライン状況

49 人のユーザが現在オンラインです。 (42 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 49
もっと...

サイト内検索

質問 > 管理機能 > 新規追加したテーブルからのデータ読み込みについて

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
HelloBetty
投稿日時: 2021/2/10 7:21
対応状況: −−−
新米
登録日: 2021/2/10
居住地:
投稿: 10
新規追加したテーブルからのデータ読み込みについて
v4.0.5で新規に企業情報のテーブルを作り商品詳細などでデータを読み出したいのですが
うまく読み込めていません
どこがおかしいのかお教え頂けますでしょうか


## Customize/Entity/Corporate.php

namespace Customize\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
* Corporate
*
* @ORM\Table(name="dtb_corporate")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
* @ORM\HasLifecycleCallbacks()
* @ORM\Entity(repositoryClass="Customize\Repository\CorporateRepository")
*/
class Corporate extends \Eccube\Entity\AbstractEntity
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", options={"unsigned":true})
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="name", type="string", length=32)
*/
private $name;

/**
* @var integer
*
* @ORM\Column(name="status", type="integer", length=1)
*/
private $status;

/**
* Get id.
*
* @return Id
*/
public function getId()
{
return $this->id;
}

/**
* Set name.
*
* @param $name
*
* @return this
*/
public function setName($name = null)
{
$this->name = $name;

return $this;
}

/**
* Get name.
*
* @return name
*/
public function getName()
{
return $this->name;
}

/**
* Set status.
*
* @param $status
*
* @return this
*/
public function setStatus($status = null)
{
$this->status = $status;

return $this;
}

/**
* Get status.
*
* @return status
*/
public function getStatus()
{
return $this->status;
}
}



## Customize/Repository/CorporateRepository.php

namespace Customize\Repository;

use Doctrine\ORM\QueryBuilder;
use Customize\Entity\Corporate;
use Eccube\Repository\AbstractRepository;
use Symfony\Bridge\Doctrine\RegistryInterface;

/**
* CorporateRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class CorporateRepository extends AbstractRepository
{
/**
* ProductReviewRepository constructor.
*
* @param RegistryInterface $registry
*/
public function __construct(RegistryInterface $registry)
{
parent::__construct($registry, Corporate::class);
}

/**
* @param integer $Corporate_id
*
* @return ArrayCollection|array
*/
public function getCorporateData($Corporate_id)
{
$qb = $this->createQueryBuilder('c')
->select('name')
->where('c.id = :id')
->setParameter('id', $Corporate_id);

$corporate = $qb->getQuery();

return $corporate;
}
}



## src/Eccube/Controller/ProductController.php 内
下記の行を追加しています


〜〜 既存行 中略 〜〜

use Customize\Repository\CorporateRepository;
use Customize\Entity\Corporate;

class ProductController extends AbstractController
{
〜〜 既存行 中略 〜〜

/**
* @var Corporate
*/
protected $CorporateRepository;

private $title = '';

/**
* ProductController constructor.
*

〜〜 既存行 中略 〜〜

* @param CorporateRepository $corporateRepository
*/
public function __construct(

〜〜 既存行 中略 〜〜

CorporateRepository $corporateRepository
) {

〜〜 既存行 中略 〜〜

$this->corporateRepository = $corporateRepository;
}



この状態で public function detail 内で
 $corporate = $this->corporateRepository->getCorporateData(1);
と呼び出したところ、下記の結果が返ってきておりますが
登録したデータは返ってきていません


Query {#1764 ▼
-_state: 2
-_parsedTypes: []
-_dql: "SELECT name FROM Customize\Entity\Corporate c WHERE c.id = :id"
-_parserResult: null
-_firstResult: null
-_maxResults: null
-_queryCache: null
-_expireQueryCache: false
-_queryCacheTTL: null
-_useQueryCache: true
#parameters: ArrayCollection {#1762 ▼
-elements: array:1 [▼
0 => Parameter {#1763 ▼
-name: "id"
-value: 1
-type: "integer"
-typeSpecified: false
}
]
}
#_resultSetMapping: null
#_em: EntityManager {#191 …11}
#_hints: []
#_hydrationMode: 1
#_queryCacheProfile: null
#_expireResultCache: false
#_hydrationCacheProfile: null
#cacheable: false
#hasCache: false
#cacheRegion: null
#cacheMode: null
#cacheLogger: null
#lifetime: 0
}

CorporateRepository.php 内の
 $corporate = $qb->getQuery();
に ->getResult() が必要なのかと思い付けてみましたところ
 Error: 'name' is not defined.
となります
デーブルが作成されていたので問題ないかと思っておりましたが
Corporate.php の方にも間違った設定があるのでしょうか?


どうぞよろしくお願い致します
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 新規追加したテーブルからのデータ読み込みについて HelloBetty 2021/2/10 7:21
     Re: 新規追加したテーブルからのデータ読み込みについて umebius 2021/2/10 9:03
       Re: 新規追加したテーブルからのデータ読み込みについて HelloBetty 2021/2/10 9:41
         Re: 新規追加したテーブルからのデータ読み込みについて HelloBetty 2021/2/14 7:49
           Re: 新規追加したテーブルからのデータ読み込みについて umebius 2021/2/14 12:05
             Re: 新規追加したテーブルからのデータ読み込みについて HelloBetty 2021/2/14 13:08

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,965名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.