質問編集履歴

1

疑問を分かりやすく修正、コード追加

2021/03/27 10:45

投稿

dauto
dauto

スコア38

test CHANGED
File without changes
test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- EC-CUBE4で会員テーブルにGroupというエンティティとリレーションしたgroup_idというカラムを追加しました。
6
-
7
- 管理画面の会員登録フォームからセレクトボックスでグループ選択してgroup_idをテーブルに追加できる様にしたいのですが、以下のエラーが発生しました。
5
+ EC-CUBE4で管理画面の会員登録フォームグループという項目を追加した、以下のエラーが発生しました。
6
+
8
-
7
+ グループは新規に追加したdtb_groupというテーブルとリレーションしています。
8
+
9
- このエラーを解決するためにGroupの配列を送信したいのですが、には何処を改善すればいいのでしょうか。
9
+ このエラーを解決するためには何処を改善すればいいのでしょうか。
10
10
 
11
11
 
12
12
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- GroupExtension.php(会員テーブルにgroup_idのフォームを追加するコード
29
+ GroupExtension.php(会員登録拡張フォーム)
30
30
 
31
31
  ```php
32
32
 
@@ -188,8 +188,468 @@
188
188
 
189
189
 
190
190
 
191
+ Group.php(新規追加したdtb_groupテーブルのエンティティ)
192
+
193
+ ```PHP
194
+
195
+ <?php
196
+
197
+
198
+
199
+ namespace Plugin\CustomerGroup\Entity;
200
+
201
+
202
+
203
+ use DateTime;
204
+
205
+ use Doctrine\Common\Collections\Collection;
206
+
207
+ use Doctrine\ORM\Mapping as ORM;
208
+
209
+ use Eccube\Entity\AbstractEntity;
210
+
211
+ use Eccube\Entity\Customer;
212
+
213
+
214
+
191
- ### 試したこと
215
+ /**
216
+
192
-
217
+ *
218
+
193
-
219
+ * Group
220
+
194
-
221
+ *
222
+
223
+ * @ORM\Table(name="dtb_group")
224
+
225
+ * @ORM\InheritanceType("SINGLE_TABLE")
226
+
227
+ * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
228
+
229
+ * @ORM\HasLifecycleCallbacks()
230
+
195
- 最初はEntityTypeを使用して実装しようとしていたのですが、プラグインではSymfonyのコンポーネント外の為EntityTypeは使用できませんでした。
231
+ * @ORM\Entity(repositoryClass="Plugin\CustomerGroup\Repository\GroupRepository")
232
+
233
+ */
234
+
235
+ class Group extends AbstractEntity
236
+
237
+ {
238
+
239
+ /**
240
+
241
+ * @var int
242
+
243
+ *
244
+
245
+ * @ORM\Column(name="id", type="integer", options={"unsigned":true})
246
+
247
+ * @ORM\Id
248
+
249
+ * @ORM\GeneratedValue(strategy="IDENTITY")
250
+
251
+ */
252
+
253
+ private $id;
254
+
255
+
256
+
257
+ /**
258
+
259
+ * @var string
260
+
261
+ *
262
+
263
+ * @ORM\Column(name="name", type="string", length=255)
264
+
265
+ */
266
+
267
+ private $name;
268
+
269
+
270
+
271
+ /**
272
+
273
+ * @var \DateTime
274
+
275
+ *
276
+
277
+ * @ORM\Column(name="create_date", type="datetimetz")
278
+
279
+ */
280
+
281
+ private $create_date;
282
+
283
+
284
+
285
+ /**
286
+
287
+ * @var \DateTime
288
+
289
+ *
290
+
291
+ * @ORM\Column(name="update_date", type="datetimetz")
292
+
293
+ */
294
+
295
+ private $update_date;
296
+
297
+
298
+
299
+ /**
300
+
301
+ * @var \Doctrine\Common\Collections\Collection
302
+
303
+ *
304
+
305
+ * @ORM\OneToMany(targetEntity="Eccube\Entity\Customer", mappedBy="Group")
306
+
307
+ */
308
+
309
+ private $Customer;
310
+
311
+
312
+
313
+ /**
314
+
315
+ * Set id
316
+
317
+ *
318
+
319
+ * @param integer $id
320
+
321
+ *
322
+
323
+ * @return Group
324
+
325
+ */
326
+
327
+ public function setId($id)
328
+
329
+ {
330
+
331
+ $this->id = $id;
332
+
333
+
334
+
335
+ return $this;
336
+
337
+ }
338
+
339
+
340
+
341
+ /**
342
+
343
+ * Get id
344
+
345
+ *
346
+
347
+ * @return integer
348
+
349
+ */
350
+
351
+ public function getId()
352
+
353
+ {
354
+
355
+ return $this->id;
356
+
357
+ }
358
+
359
+
360
+
361
+ /**
362
+
363
+ * Set name
364
+
365
+ *
366
+
367
+ * @param string $name
368
+
369
+ *
370
+
371
+ * @return Group
372
+
373
+ */
374
+
375
+ public function setName($name)
376
+
377
+ {
378
+
379
+ $this->name = $name;
380
+
381
+
382
+
383
+ return $this;
384
+
385
+ }
386
+
387
+
388
+
389
+ /**
390
+
391
+ * Get name
392
+
393
+ *
394
+
395
+ * @return string
396
+
397
+ */
398
+
399
+ public function getName()
400
+
401
+ {
402
+
403
+ return $this->name;
404
+
405
+ }
406
+
407
+
408
+
409
+ /**
410
+
411
+ * Set createDate
412
+
413
+ *
414
+
415
+ * @param DateTime $createDate
416
+
417
+ *
418
+
419
+ * @return Group
420
+
421
+ */
422
+
423
+ public function setCreateDate($createDate)
424
+
425
+ {
426
+
427
+ $this->create_date = $createDate;
428
+
429
+
430
+
431
+ return $this;
432
+
433
+ }
434
+
435
+
436
+
437
+ /**
438
+
439
+ * Get createDate
440
+
441
+ *
442
+
443
+ * @return DateTime
444
+
445
+ */
446
+
447
+ public function getCreateDate()
448
+
449
+ {
450
+
451
+ return $this->create_date;
452
+
453
+ }
454
+
455
+
456
+
457
+ /**
458
+
459
+ * Set updateDate
460
+
461
+ *
462
+
463
+ * @param DateTime $updateDate
464
+
465
+ *
466
+
467
+ * @return Group
468
+
469
+ */
470
+
471
+ public function setUpdateDate($updateDate)
472
+
473
+ {
474
+
475
+ $this->update_date = $updateDate;
476
+
477
+
478
+
479
+ return $this;
480
+
481
+ }
482
+
483
+
484
+
485
+ /**
486
+
487
+ * Get updateDate
488
+
489
+ *
490
+
491
+ * @return DateTime
492
+
493
+ */
494
+
495
+ public function getUpdateDate()
496
+
497
+ {
498
+
499
+ return $this->update_date;
500
+
501
+ }
502
+
503
+
504
+
505
+ /**
506
+
507
+ * Set customer
508
+
509
+ *
510
+
511
+ * @param Customer|null $customer
512
+
513
+ *
514
+
515
+ * @return Group
516
+
517
+ */
518
+
519
+ public function setCustomer(Customer $customer = null)
520
+
521
+ {
522
+
523
+ $this->Customer = $customer;
524
+
525
+
526
+
527
+ return $this;
528
+
529
+ }
530
+
531
+
532
+
533
+ /**
534
+
535
+ * Get customer
536
+
537
+ *
538
+
539
+ * @return Customer|null
540
+
541
+ */
542
+
543
+ public function getCustomer()
544
+
545
+ {
546
+
547
+ return $this->Customer;
548
+
549
+ }
550
+
551
+ }
552
+
553
+ ```
554
+
555
+
556
+
557
+ CustomerTrait.php(dtb_customerテーブルの拡張エンティティ)
558
+
559
+ ```PHP
560
+
561
+ <?php
562
+
563
+
564
+
565
+ namespace Plugin\CustomerGroup\Entity;
566
+
567
+
568
+
569
+ use Doctrine\ORM\Mapping as ORM;
570
+
571
+ use Eccube\Annotation as Eccube;
572
+
573
+ use Symfony\Component\Validator\Constraints as Assert;
574
+
575
+
576
+
577
+ /**
578
+
579
+ * @Eccube\EntityExtension("Eccube\Entity\Customer")
580
+
581
+ */
582
+
583
+ trait CustomerTrait {
584
+
585
+
586
+
587
+ /**
588
+
589
+ * @var Group
590
+
591
+ *
592
+
593
+ * @ORM\ManyToOne(targetEntity="Plugin\CustomerGroup\Entity\Group", inversedBy="Customer")
594
+
595
+ * @ORM\JoinColumns({
596
+
597
+ * @ORM\JoinColumn(name="group_id", referencedColumnName="id")
598
+
599
+ * })
600
+
601
+ */
602
+
603
+ private $Group;
604
+
605
+
606
+
607
+ /**
608
+
609
+ * Set group
610
+
611
+ *
612
+
613
+ * @param Group|null $group
614
+
615
+ *
616
+
617
+ * @return CustomerTrait
618
+
619
+ */
620
+
621
+ public function setGroup(Group $group = null)
622
+
623
+ {
624
+
625
+ $this->Group = $group;
626
+
627
+
628
+
629
+ return $this;
630
+
631
+ }
632
+
633
+
634
+
635
+ /**
636
+
637
+ * Get group
638
+
639
+ *
640
+
641
+ * @return Group|null
642
+
643
+ */
644
+
645
+ public function getGroup()
646
+
647
+ {
648
+
649
+ return $this->Group;
650
+
651
+ }
652
+
653
+ }
654
+
655
+ ```