Symfony升级到4.1资产错误

时间:2018-07-02 09:10:14

标签: symfony assets symfony4 symfony-3.3 symfony-3.4

我为Symfony 4.1迁移了一个项目,但没有将文件结构更改为新的Symfony文件结构。例如,我的资产保留在\ web文件夹中。 除资产外,它都可以正常工作。要解决此问题,我在控制器中进行了替换:

$this->container->get('templating.helper.assets')->getUrl($path);

$this->container->get('assets.packages')->getUrl($path);

我还执行以下命令:编写者需要symfony / asset

此后,当我运行网页时,出现以下错误:

在编译容器时,“ assets.packages”服务或别名已被删除或内联。您应该将其公开,或者停止直接使用容器并改为使用依赖项注入。

要尝试解决此错误,我将其放在services.yml中:

services:
assets.packages:
    class: \Symfony\Component\Asset\Packages
    public: true

但是在那之后,我又遇到了另一个错误:

enter image description here

您知道那可能是什么吗?有什么问题吗?

2 个答案:

答案 0 :(得分:1)

我已经能够解决该错误。只需在服务中添加默认包作为参数即可:

 function add_order_email_instructions( $order, $sent_to_admin )
  {
       $order_id = $order->get_id();
      if(!$sent_to_admin) 
       {
         //Your message or code
       }
      else
       {
          //Your message or code
       }
    }
   add_action( 'woocommerce_email_before_order_table', 'add_order_email_instructions', 10, 2 );
add_filter( 'woocommerce_email_headers', 'new_order_reply_to_admin_header', 20, 3 );
function new_order_reply_to_admin_header( $header, $email_id, $order ) 
{

    if ( $email_id === 'new_order' ){
        $email = new WC_Email($email_id);
        $header = 'MIME-Version: 1.0' . "\r\n";
        $header = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    }
    return $header;
}

答案 1 :(得分:0)

不再使用Assetic,请使用Webpack Encore https://symfony.com/doc/current/frontend.html