小编Tom*_* S.的帖子

Symfony2和Selectize.js:在实体字段类型中保留新项目的最清晰方法?

在Symfony2中BandType,我添加了实体Tag:

->add('tags', 'entity', [
     'label' => 'Tags',
     'class' => 'DbBundle:Tag',
     'property' => 'title',
     'multiple'  =>  true,
])
Run Code Online (Sandbox Code Playgroud)

这会生成多个select元素,我可以从数据库中选择现有的标签(Doctrine).但我需要动态添加新标签,这些标签尚不存在.

在客户端,我使用jQuery插件Selectize.js,它允许我添加新标签到选择框.但在提交表单后,新标签不会保存.

所以我的问题是 - 从选择框(实体字段类型)中保留新项目的最清晰方法什么

php entity symfony-forms symfony selectize.js

12
推荐指数
1
解决办法
1108
查看次数

Symfony2:使用VichUploaderBundle手动上传文件

如何在没有表格的情况下使用VichUploaderBundle上传文件?

我在某个目录中有文件(例如web/media/tmp/temp_file.jpg)

如果我试试这个:

$file = new UploadedFile($path, $filename);

$image = new Image();
$image->setImageFile($file);

$em->persist($image);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

由于未知错误,未上载文件"temp_file.jpg".

我需要从远程网址上传文件.所以我将文件上传到tmpdirecotry(使用curl),然后我一直尝试将它注入到VichUploadBundle中(如上所示).

php symfony vichuploaderbundle

6
推荐指数
2
解决办法
5197
查看次数

用.htaccess重写的URL使重复的mysql条目

如果使用.htaccess重写url,则使用php执行所有INSERT查询两次(不需要的重复)

我的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

index.php

<?php define('DB_LOGIN', 'mylogin');
define('DB_PASS', 'mypass');
define('DB_HOST', 'localhost');
define('DB_TYPE', 'mysql');
define('DB_NAME', 'dbname');

$mysql = MySQL_Connect(DB_HOST, DB_LOGIN, DB_PASS);
$mysql_db = MySQL_Select_DB(DB_NAME);

mysql_query("INSERT INTO `pages` (`title`, `slug`) VALUES ('TEST', 'test')"); ?>
Run Code Online (Sandbox Code Playgroud)

一次加载index.php之后,我在mysql中有两个相同的条目。当我删除.htaccess时,一切正常,因此,问题一定在那里。.htaccess中的重写定义来自Wordpress-我喜欢它。

我尝试使用Medoo框架,但条目仍然重复。

那么,有什么建议吗?:-)

php mysql .htaccess mod-rewrite

5
推荐指数
1
解决办法
441
查看次数

Symfony2:如何在没有表单的情况下验证UploadedFile?

我需要将下载文件从 URL上传到我的服务器,并使用Uploadable (DoctrineExtensions)保留它。几乎一切都很好,我的方法是:

  1. 将文件下载curl到我的服务器上的临时文件夹
  2. 创建UploadedFile方法并用属性值填充它
  3. 将其插入可上传实体Media
  4. 进行验证
  5. 坚持并冲洗

简化的代码:

// ... download file with curl

// Create UploadedFile object
$fileInfo = new File($tpath);
$file = new UploadedFile($tpath, basename($url), $fileInfo->getMimeType(), $fileInfo->getSize(), null);

// Insert file to Media entity
$media = new Media();
$media = $media->setFile($file);
$uploadableManager->markEntityToUpload($media, $file);

// Validate file (by annotations in entity)
$errors = $validator->validate($media);

// If no errors, persist and flush
if(empty($errors)) {
    $em->persist($this->parentEntity);
    $em->flush();
}
Run Code Online (Sandbox Code Playgroud)

如果我跳过验证,则一切正常。文件已成功移动到正确的路径(由 config.yml 中的可上传扩展配置)并保存到数据库。但手动创建的验证 …

validation symfony doctrine-extensions doctrine-uploadable

5
推荐指数
1
解决办法
1259
查看次数