0

XML フィードを解析し、次の方法で保存します。

$action = new CouponActionForm();
$values = array(
      'name' => $offer->name,
      'link' => $offer->url,
      'description' => $offer->description,
      'discount' => $offer->discount,
      'price' => $offer->price
);
$files = $this->getImages($offer->picture);
if(!$action->bindAndSave($values, $files)){
      echo $action->renderGlobalErrors();
      die('BAD THING');
}

getImagesメソッドは次のとおりです。

private function getImages($url){
  $ret = array('error' => 0);
  $tmp_dir = sys_get_temp_dir();
  $tmp_file = tempnam($tmp_dir, 'kupon');
  if(copy($url, $tmp_file)){
      $ret['tmp_name'] = $tmp_file;
      $ret['name'] = basename($url);
      $ret['size'] = filesize($tmp_file);
      $ret['type'] = 'image/jpeg';
      return array('filename' => $ret);
  }else{
      die('HELP');
  }
}

->fromArrayメソッドでオブジェクトを保存する代わりにフォーム保存を使用するのはなぜですか? まあ、私はすでにフォームとすべての検証を行っているので、同じことを2回実装したくはありませんが(DRY)、重要なこととして、教義モデルでバリデーターを使用する方法が実際にはわかりません。問題は、フォームがバリデータのpathプロパティで指定された特定のディレクトリにファイルを保存せずsfValidatorFile、tmp ディレクトリに存在することです。

4

0 に答える 0