Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony备用新动作_Php_Symfony Forms_Symfony 1.4_Admin Generator - Fatal编程技术网

Php Symfony备用新动作

Php Symfony备用新动作,php,symfony-forms,symfony-1.4,admin-generator,Php,Symfony Forms,Symfony 1.4,Admin Generator,我有一个服务器,我需要存储一些图像。现在,图像可以被上传或动态创建,比如说,只需在一些默认图片中添加一些文本(因此我为此制作了一个文件MakenewForm.php)。数据库中的表将文件名存储在本地文件系统上。现在上传很简单,我可以使用默认的新操作。为了创建图片,我做了一个新动作,比如说makenewnew和makenew都显示在列表视图中。我将newSuccess.php复制到makenewSuccess.php。现在我想要一套不同的提交按钮。我似乎不知道该怎么做。我所看到的是: <di

我有一个服务器,我需要存储一些图像。现在,图像可以被上传或动态创建,比如说,只需在一些默认图片中添加一些文本(因此我为此制作了一个文件
MakenewForm.php
)。数据库中的表将文件名存储在本地文件系统上。现在上传很简单,我可以使用默认的新操作。为了创建图片,我做了一个新动作,比如说
makenew
new
makenew
都显示在列表视图中。我将
newSuccess.php
复制到
makenewSuccess.php
。现在我想要一套不同的提交按钮。我似乎不知道该怎么做。我所看到的是:

<div id="sf_admin_content">
<?php include_partial('poster/form', array('poster' => $poster, 'form' => $form,       'configuration' => $configuration, 'helper' => $helper)) ?>
</div>

我不知道什么是$configuration,什么是$helper。有人能告诉我他们的情况吗?我需要换哪一个,怎么换

另外,您可以推断,
new
操作的提交操作只需要执行
$form->save()
,但是
makenew
的提交操作需要执行所有文本输入并编写一个图像文件(比如使用imagejpeg


我需要一些实现这一目标的建议

我希望把重点放在你要找的东西上

关于
$configuration
$helper
,您可以在
cache\myapplication\dev\modules\autoMymodule\actions\actions.class.php
中找到,函数
preExecute()
也用于创建它们:

$this->configuration = new mymoduleGeneratorConfiguration();
$this->helper = new mymoduleGeneratorHelper();
这些类位于
apps\docdesk\modules\mymodule\lib
中。您可以在
cache\myapplication\dev\modules\autoMymodule\lib
中找到基类。看看这些基类,了解它们是如何使用的,以及管理生成器提供了哪些配置函数和帮助函数

为了处理您的新操作,我不知道您正在开发的功能,因此我将尝试想象两种可能的场景。您只能使用一个表单,通过自定义小部件切换上载/创建图片的功能,覆盖代码片段中调用的模板
\u form.php
,以及新操作等等,或者,按照您所遵循的方式,创建一个完全独立的操作、表单和所有需要的模板。因此,在makenewSucces.php中,可以包含一个名为

当然,您必须将模板
\u makeform.php
放入
apps\docdesk\modules\mymodule\template
中,作为每个新的或覆盖的模板

我不太明白你在图像保存方面遇到的麻烦。。。我想你是在要求一个图像的保存链,以及如何和在哪里管理你需要的东西。 要在
PosterForm
类中添加小部件以上载图像,您可以使用这样的代码段,其中我们假设
photo
作为小部件名称,并根据模式字段
photo:{type:varchar(255),required:true}
,这当然是为了自定义:

    public function configure()
    {
        $photo = $this->getObject()->getPhoto(); // get the photo name
        $photo = sfConfig::get('sf_upload_image_dir').$photo;

        $this->widgetSchema['photo'] = new sfWidgetFormInputFileEditable(array(
            'label'     => 'Photo',
            'file_src'  => $photo,
            'is_image'  => true,
            'edit_mode' => !$this->isNew(),
            'delete_label' => 'check to remove',
            'template'  => '<div>%input%<br/><br/>%file%<br/><br/>%delete%<p>%delete_label%<br/><p></div>'
        ));

        $this->validatorSchema['photo'] = new sfValidatorFile(array(
            'required'   => true,
            'path'            => sfConfig::get('sf_upload_image_dir'),
            'mime_categories' => array('web_images' => array(
                'image/jpeg',
                'image/pjpeg',
                'image/png',
                'image/x-png'
            )),
            'mime_types' => 'web_images',
        ));

        $this->validatorSchema['photo_delete'] = new sfValidatorPass();
    }
最后,要删除图像(即文件),当删除对象(即图像名称为字段的db记录)时,必须将此代码放入模型类
Poster

public function delete(PropelPDO $con = null) // using Propel
{
    $photo = sfConfig::get('sf_upload_image_dir').$this->getPhoto();
    if ( file_exists($photo) )
        unlink($photo);

    return parent::delete($con);
}
我希望这能帮助你

public function delete(PropelPDO $con = null) // using Propel
{
    $photo = sfConfig::get('sf_upload_image_dir').$this->getPhoto();
    if ( file_exists($photo) )
        unlink($photo);

    return parent::delete($con);
}