我为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
但是在那之后,我又遇到了另一个错误:
您知道那可能是什么吗?有什么问题吗?
答案 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