katzさん、本日は週刊concrete5でご教示いただきまして
ありがとうございました。
ローカルPCからダイレクトにExpressへファイルを取り込める
http://documentation.concrete5.org/developers/working-with-files-and-the-file-manager/importing-new-files も大変勉強になりました。
また、ファイルマネージャからExpressへ登録する方法については、
次のコードで実現できました。
【ビュー側】
<p><label>添付ファイル1:<?php
$fm = Core::make('helper/concrete/asset_library');?>
<div class="ccm-attribute ccm-attribute-image-file">
<?php echo $fm->file('f1', 'file1', 'ファイルを選択してください');?>
</div>
</label></p>
【コントローラ側】
use File;
$f1 = File::getById($this->post('file1'));
$entry = Express::buildEntry( 'autumn' )
->setAFiles1($f1)
->save();
これで例外が発生せず、ファイルマネージャからファイル情報を
Expressへ登録することができました。
本当にありがとうございました。
Re: 外部フォームからExpressへのファイル保存について
2021年5月28日 at 13:03
いつもお世話になります。
昨日質問させていただきました、外部フォームからの
ファイル添付につきまして、進展がございましたので、
ご報告いたします。
ファイルマネージャからのファイルアップロードを
コードに追加して、ファイルをローカルコンピュータ
からアップロードすると、Expressに登録できました。
理由は不明ですが、取り急ぎご報告いたします。
【ビュー側】
<p><label>添付ファイル1:<?php
$fm = Core::make('helper/concrete/asset_library');?>
<div class="ccm-attribute ccm-attribute-image-file">
<?php echo $fm->file('f1', 'file1', 'ファイルを選択してください');?>
</div>
</label></p>
Your post has been saved and will be published after approval by the forum moderator.
ハイキック
Re: 外部フォームからExpressへのファイル保存について
Expressエントリーとして登録すると、
Expected value of type "Concrete\Core\Entity\File\File" for association field "Concrete\Core\Entity\Attribute\Value\Value\ImageFileValue#$file", got "string" instead.
のエラーが出ました。
ただし、Expressにはデータは正常に保存されております。
このエラーは何を意味するのでしょうか?
デバッグでは
public static function invalidAssociation(ClassMetadata $targetClass, $assoc, $actualValue)
{
$expectedType = 'Doctrine\Common\Collections\Collection|array';
if (($assoc['type'] & ClassMetadata::TO_ONE) > 0) {
$expectedType = $targetClass->getName();
}
return new self(sprintf(
'Expected value of type "%s" for association field "%s#$%s", got "%s" instead.',
$expectedType,
$assoc['sourceEntity'],
$assoc['fieldName'],
is_object($actualValue) ? get_class($actualValue) : gettype($actualValue)
));
}
のボールド部分がハイライトされております。