最近、自分の Web サイトにアップロード モジュールをセットアップしました。しかし、すべての写真を 1 つのディレクトリに入れるのは面倒だと思います。そこで、symfony を使用してユーザーごとに 1 つのフォルダーを作成することにしました。ユーザーが登録されたら、既存のフォルダーをコピーして貼り付け、名前 (ユーザー ID) 属性を操作して、さまざまなフォルダーを区別します。
だから私は名前と呼ばれる属性を追加しました
private $name;
public function getUploadRootDir()
{
return __dir__ . '/../../../../web/uploads/'. $this->getName();
}
public function getAbsolutePath()
{
return null === $this->path ? null : $this->getUploadRootDir() . '/' . $this->path;
}
public function getWebPath($name) {
return 'uploads/' . $name->getId() . '/' . $this->path;
}
public function getAssetPath()
{
return 'uploads/' . $this->getName() . '/' . $this->path;
}
アップロードは正常に機能します。コントローラーでは、次のようなことを行います。
$imageProfile->getImage()->setName($user->getId());
良いディレクトリに写真をアップロードします。
画像を表示するには、次のようにします。
<img class="img-responsive"src="{{ asset(player.base.getWebPath(user)) }}" />
これですべてがスムーズに機能し、写真を見ることができ、適切なフォルダーに入っています。
問題:
写真と写真を編集するフォームを表示したいときに、このエラーが発生します。
警告: C:\wamp\www\symfony_coc\vendor\symfony\symfony\src\Symfony\Component\PropertyAccess\PropertyAccessor.php の 310 行目で呼び出される COC\COCBundle\Entity\Image::getWebPath() の引数 1 がありませんと定義
getWebPath() メソッドに追加したパラメーター「name」が付属していると思いますが、これがベンダーエラーに関連する理由がわかりません。(削除して再度生成しようとしましたが、同じ問題です)
どうぞよろしくお願いいたします。
ありがとうございました。