小编Kar*_*ski的帖子

如何在symfony2中从数据库中呈现Twig模板

我正在研究用symfony2编写的应用程序,我希望在一些动作/事件之后发送电子邮件...问题是,用户可以定义类似"电子邮件模板"的东西,它像db一样存储在db中,例如:"这个是来自{{user}}的一些电子邮件,我需要从该模板呈现电子邮件的正文...在此链接的symfony文档中:http://symfony.com/doc/2.0/cookbook/email.html#sending -emails用于渲染的方法是$ this-> renderView,它希望引用文件为"bundle:controller:file.html.twig",但我的模板是数据库作为简单字符串...我该如何渲染它?

email render symfony twig

30
推荐指数
6
解决办法
3万
查看次数

为什么角度设置未定义为清空ng-model字段

我在Angular(1.2)和Laravel(4.2)中有简单的crud应用程序.对于简单的crud操作,我使用高效的Eloquent方法:

$product->fill(Input::all());
Run Code Online (Sandbox Code Playgroud)

从请求有效负载中获取所有字段,但是当我需要使用空字段更新模型时会出现问题.

在编辑操作中,我有一个表单,其中填充了我的服务的$ resource get方法的响应:

adminModule.factory 'Product', ($resource) ->
  $resource '/admin/products/:id', { id: '@id' }, {
    query: { method: 'GET', isArray: false }
    update: { method: 'PUT' }
  }
Run Code Online (Sandbox Code Playgroud)

控制器:

adminModule.controller 'ProductFormEditController', ($scope, Product, $stateParams) ->

  $scope.formData = Product.get({id: $stateParams.id})
Run Code Online (Sandbox Code Playgroud)

和HTML:

    <input  type="text" data-ng-model="formData.name" name="name" class="form-control" id="name"
                           placeholder="Nazwa" data-server-error required>
Run Code Online (Sandbox Code Playgroud)

如果我清除此字段值并提交$ scope.formData的值设置为undefined并且PUT请求中没有包含,那么Laravel模型填充方法无论如何都看不到该字段并且不设置为空验证的值,但采用模型的原始值.

问题是:如何从ngModel而不是undefined发送空字符串?

ps如果输入类型是Textarea,$ resource发送空""字符串: - /,所以我很困惑......

laravel angularjs angular-resource

13
推荐指数
2
解决办法
1万
查看次数

如何在Symfony2表单类型的集合中动态添加集合

我在symfony2中有3种表单类型

FaultType,它是所有下一个集合的父级

<?php

namespace My\FaultBundle\Form;

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilder;

class FaultType extends AbstractType
{

    public function buildForm(FormBuilder $builder, array $options)
    { 
        $builder
                ->add('title')
                ->add('steps', 'collection', array(
                    'type' => new StepType(),
                    'allow_add' => true,
                    'prototype' => true,
                    'by_reference' => false,
                ))
                ->add('created')
                ->add('updated')
        ;
    }

    public function getDefaultOptions()
    {
        return array(
            'data_class' => 'My\FaultBundle\Entity\Fault'
        );
    }

    public function getName()
    {
        return 'my_fault_fault';
    }

}
Run Code Online (Sandbox Code Playgroud)

步骤类型:

<?php

namespace My\FaultBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class StepType extends AbstractType
{
    public function buildForm(FormBuilder $builder, …
Run Code Online (Sandbox Code Playgroud)

collections symfony

8
推荐指数
1
解决办法
7479
查看次数

如何使用聚合在 Elasticsearch 中实现层次分面搜索

我正在开发一个标准的电子商务应用程序,该应用程序包含多对多类别的产品。

类别是树并以嵌套集形式存储在数据库中。

类别可以有子类别等等。

我想将 Elasticsearch 用于搜索功能,但我找不到任何用于此类标准(几乎所有网上商店都具有该功能)分面搜索的用例(或示例),我将在下面尝试解释:

类别

桌子:

----------------------------------------------
|id      | name        | lft     | rgt       |
----------------------------------------------
|1       | Electronics | 1       | 18        |
|2       | Accesories  | 2       | 9         |
|3       | Cards       | 3       | 4         |
|4       | Stations    | 5       | 6         |
|5       | Cables      | 7       | 8         |
|6       | Computers   | 10      | 15        |
|7       | Laptops     | 11      | 12        |
|8       | Software    | 13      | …
Run Code Online (Sandbox Code Playgroud)

php mysql elasticsearch

7
推荐指数
0
解决办法
650
查看次数

如何使用sonata媒体捆绑我的实体

我想在我的捆绑包中使用sonata媒体包作为媒体.

我有一个应该有一个画廊的实体.安装奏鸣曲媒体包并生成easy:extends后,有3个不同的实体:

  • 忽略原始
  • Gallery.php
  • GalleryHasMedia.php.

如何将这些实体链接到我自己的实体以进行库实现???

symfony-sonata

6
推荐指数
1
解决办法
8372
查看次数

可配置的Backbone.js事件选择器

我正在使用优秀的框架Backbone.js开发简单的应用程序,如果我可以制作可配置的主干视图事件选择器,例如这样它不起作用,会导致它的错误的js语法,这将是很好的:

return Backbone.View.extend({
    events: {
        'click ' + someConfigSelector: 'doSomethink'
    }
})
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可以在Backbone视图中设置事件?

backbone.js backbone-events backbone-views

4
推荐指数
1
解决办法
1351
查看次数

在信息栏的侧栏中显示所选模型

我正在开发一个右侧有侧边栏的应用程序.那显示集合.集合的每个模型都有select行为.

在页面的顶部中心,我有一个独立的主干视图,其行为类似于"信息栏",当我选择侧边栏中的一个视图时,此视图应更新它的信息

我该怎么做?我认为侧边栏中的每个视图都应该有模型参数的"选定"事件,我的问题是如何在Backbone.js的信息栏视图中监听该更改?

backbone.js backbone-events backbone-views

2
推荐指数
1
解决办法
434
查看次数

在 Web 应用程序中实现全功能媒体上传

假设我们有处理创建、读取、更新和删除文章的 Web 应用程序,并且每篇文章都应该有图片库。我必须在文章和画廊之间建立一对一的关系,在画廊和媒体之间建立一对多的关系。

HTML5 提供了很多功能,例如 multiupload,因此我想为此使用这个出色的http://blueimp.github.io/jQuery-File-Upload/插件。问题是如何像其他表单的数据一样处理“内存中”的文件上传?

例如,当我们显示创建新文章的页面时,我们应该能够填写文章的数据字段并选择要上传的图片,接下来当我们点击保存按钮时,图片应该开始上传,然后提交表单。当验证失败时,图像仍应显示在前端,但在服务器端 nothink 应保存。

解决方案之一是在显示整个表单之前创建一些类似“创建实体会话临时 id”的想法,该 id 可用于创建临时目录以保存上传,因此在成功保存表单后,这些图像可以移动到适当的目录,但是如何使“创建实体会话临时ID”?

我认为的另一个解决方案是“使用编辑 ID”方法,因为我们可以使用以前保存的画廊 ID 处理上传,但有时我无法使用画廊保存新的空白文章,因为某些字段不应为空在数据库中。

对于 Rails,我在自述文件中看到了https://github.com/thoughtbot/paperclip gem:

Paperclip 旨在作为 Active Record 的简单文件附件库。其背后的意图是使设置尽可能简单,并尽可能像对待其他属性一样对待文件。这意味着它们不会保存到磁盘上的最终位置,如果设置为 nil,它们也不会被删除,直到调用 ActiveRecord::Base#save。

我的问题是它是如何工作的?

php upload symfony jquery-file-upload

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

未找到Laravel基表或视图

我的routes.php我有以下内容:

<?php

Route::group(array(), function () {
    View::share('roots', Category::roots()->get());
    $tree = Category::get()->toHierarchy()->toArray();
    View::share('categories', $tree);

    Route::get('/', array('as' => 'home', 'uses' => 'HomeController@index'));
});
Run Code Online (Sandbox Code Playgroud)

当我的数据库还没有表,我想做php artisan migrate时,结果是:SQLSTATE [42S02]:找不到基表或视图:1146表'ae_dev.categories'不存在

我的迁移文件:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateCategoriesTable extends Migration {

  /**
   * Run the migrations.
   *
   * @return void
   */
  public function up() {
    Schema::create('categories', function(Blueprint $table) {
      $table->increments('id');
      $table->integer('parent_id')->nullable()->index();
      $table->integer('lft')->nullable()->index();
      $table->integer('rgt')->nullable()->index();
      $table->integer('depth')->nullable();
      $table->string('name', 255);

      $table->timestamps();
    });
  }

  /**
   * Reverse the migrations.
   *
   * @return void
   */
  public function down() {
    Schema::drop('categories');
  } …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-4 laravel-routing

0
推荐指数
1
解决办法
3331
查看次数