Re: Expressのテーブルデータ取得について

2020年7月16日 at 10:11

一点ずつ返答しますね。

>  そう致しますと、例えば、エクスプレスのエンティティを使わず、
> concrete5のMySQLにカスタムビジネスデータベースを追加して、
> そのデータベースへ\Database::connection() の関数を用いて接続する
> 方法ですと、可能ということになりますでしょうか?

いえ、\Database::connection() は使わず、エクスプレスのエンティティを使った方が良いと思います。

> 先日ご教示頂いた情報をもとに、外部フォームのview と controllerを作成し、
> サーバにファイルを送信してみました。
(省略)
> 外部フォームで適当なレコードを入力し、「登録」ボタンを押下しましたところ、
> 404 page not foundと表示されました。
> コントローラ側のコードに原因があるかと思いますが、どこが原因でエラーが表示
> されるか不明でございますので、ご教示頂けませんでしょうか?

ちょっとだけ見ただけなのですが、controller.txt を見ましたが、外部フォームで必要になりそうな、view() がないようです。他にも細かい部分で修正が必要そうです。

これは Express との連携というより、外部フォームの作り方で足らないところがあるようなので、一度、僕のサンプルコードを参考に、足らない部分を修正してみてはいかがでしょうか?
http://github.com/katzueno/c5_external_form_boilerplate

ざっくりですが
application/blocks/external_form/form/confirm_form.php
application/blocks/external_form/form/controller/confirm_form.php
を参考に、修正してみてください。

> FTPで、/concrete/blocks/express_form 配下のphpファイルを参照しましたが、
> どれがフォームから登録されるコードが記載されているか不明です。
> Expressで作成したフォームから、データを登録する過程を記述したコードの場所を

データを保存する過程は単純に /concrete/blocks/express_form 配下だけの記述ではないです。

concrete/blocks/express_form/controller.php の5行目から、use 宣言がされています。
これらの use 宣言が Express Form が使用している concrete5 Core ファイルの場所を示しています。

例えば
use Concrete\Core\Express\Attribute\AttributeKeyHandleGenerator;
であれば
concrete/src/Express/Attribute/AttributeKeyHandleGenerator.php
のファイルとその中の Class を参照しています。

35ファイルぐらいとなります。

Express Form は、一般ユーザー側にとってシンプルなステップでフォームを作成できるようにしているので、その操作性を作り出すため複雑なプログラムになっています。

> controller側の関数引数にある、$bIDという変数は
> そもそも何のIDに該当するのでしょうか?

block ID です。
これは、concrete5 全般で、ブロックを管理するための ID です。

外部フォームブロックのみならず、記事ブロックなどでも使われています。

> 2/8ページ冒頭にございます、
> $address = new \Concrete\Core\Entity\Attribute\Value\Value\AddressValue();
> の個所については、どのように定義するべきなのでしょうか?

これは、Express の項目の種類が「住所」であった場合、住所オブジェクトに必要な各プロパティ(郵便番号、都道府県、市町村等)を設定して、オブジェクトとして返す方法です。

住所属性の設定方法が必要ということでしょうか?


それでは、よろしくおねがいします。

Re: Expressのテーブルデータ取得について

2020年7月16日 at 11:01
カツさん

 ご返信まことにありがとうございます。
お教えいただいたサンプルコードを参考に、まずはどのように動作するか
確認してみます。
まだまだ知識が不足しているということだと思います。
もう少しドキュメントや、カツさんのコードを学習して、確実な動作ができる
ようになります。