我正在创建简单的产品,然后创建可配置的产品,然后将简单的产品与可配置的产品相关联.当我第一次运行代码时,它可以顺利地创建所有简单的产品,可配置的产品以及关联.但是,当我再次运行该代码时,它表示违反约束.显示重复的ID与上次创建的产品ID相同,当所有进程都正常时.
我的代码是以下代码.
$product_collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*');
$toinsertId = $product_collection->getLastItem()->getId() + 1;
$configurable_attribute = "art_print_sizes";
$attr_id = 133;
$simpleProducts = array();
$lowestPrice = 999999;
$attributes = Mage::getModel('catalogsearch/advanced')->getAttributes();
$attributeArray = array();
foreach ($attributes as $a) {
if ($a->getAttributeCode() == 'art_print_sizes') {
$count = 0;
foreach ($a->getSource()->getAllOptions(false) as $option) {
$option_id = $this->getOptionId("art_print_sizes", $option['label']);
$sku = 'SK_' . '500' . '_' . strval($count);
$sProduct = Mage::getModel('catalog/product');
$sProduct
->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
->setWebsiteIds(array(1))
->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE)
->setTaxClassId(5)
->setAttributeSetId(9)
->setSku($sku)
// $main_product_data is an array created as part …Run Code Online (Sandbox Code Playgroud) 如何在Ruby on Rails 4.2中渲染部分字符串,因为render_to_string不推荐使用?
就像是:
rendered_string = render_to_string partial: 'forgotten_orders/soonest_manufacturing_date', locals: { forgotten_order: forgotten_order, soonest_manufacturing_date: soonest_manufacturing_date }
Run Code Online (Sandbox Code Playgroud) 我已将完整日历整合到我的网站中.我的一个要求是从数据库中获取营业时间并在日历上呈现它.所以基本上每天都有两班(早上和晚上).我需要能够创建一个营业时间数组,并从数据库中填充值.开箱即用,我可以使用以下代码来渲染常见的营业时间.
businessHours:
{
start: '10:00:00',
end: '16:00:00',
dow: [0,1,2,3,4,5,6]
},
Run Code Online (Sandbox Code Playgroud)
我希望实现这样的目标:
businessHours:[
{
start: '10:00:00',
end: '13:00:00',
dow: [0]
},
{
start: '14:00:00',
end: '19:00:00',
dow: [0]
},
{
start: '09:00:00',
end: '12:00:00',
dow: [1]
},
{
start: '12:30:00',
end: '18:00:00',
dow: [1]
},
]
Run Code Online (Sandbox Code Playgroud)
如果使用完整日历的现有属性无法做到这一点,还有其他方法可以实现吗?先感谢您.
我正在使用 Rails 5.2 和 Ruby 2.3.7 开发 Rails 应用程序,并希望使用 Active Storage 将图像附加到我的 Event 对象。
以下是我采取的主要步骤
在 config/environments/development.rb 我确认: config.active_storage.service = :local
文件
event.rb 我添加了这一行: has_one_attached :event_image
events_controller.rb 我在 event_params 中将 :event_image 属性列入白名单
events/_form.html.erb 我已经设置了一个 form_for 来上传图片
<%= f.label :event_images %>
<%= f.file_field :event_image %>
Run Code Online (Sandbox Code Playgroud)
events/index.html.erb 我尝试用
<% if event.event_image.attached? %>
<%= image_tag event.event_image %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
错误:无法将图像解析为 URL:未定义方法 `attachment_url' for :0x00007fca5dcef8b8>
<% if event.event_image.attached? %>
<%= image_tag url_for(event.event_image) %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
错误:类的未定义方法`attachment_path':0x00007fca5e0109c0>:0x00007fca5dacefe8>
我已经确认我的数据库中存在 active_storage_attachments 和 active_storage_blobs 并且附件保存在那里
任何建议将不胜感激。从我所有的谷歌搜索来看,这似乎应该有效
我试图从命令行运行PHP脚本(magento reindexer脚本).该脚本消耗大量内存,因此我收到以下错误:PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 72 bytes) in /home/karanta/www/karanta.fr/lib/Zend/Db/Adapter/Abstract.php on line 691
要解决此问题,我编辑了/etc/php5/cli/php.ini文件并进行了设置memory_limit = 2048M.
要检查配置,我运行一个包含phpinfo();cli 的脚本,我看到:memory_limit => 2048M => 2048M,所以似乎正确考虑了配置.ini_get('memory_limit);也返回2048M.
但是当我重新运行reindex脚本时,我仍然PHP Fatal error: Allowed memory size of 536870912 bytes exhausted感觉到memory_limit仍然是512M.该脚本无法完成,我没有想法如何扩充memory_limit以允许脚本完成.
编辑:我也尝试将指令ini_set("memory_limit", -1);直接添加到PHP脚本中,它仍然挂起相同PHP Fatal error: Allowed memory size of 536870912 bytes exhausted.
额外的信息:
服务器是运行Debian GNU/Linux 7.5和64GB RAM的ovh专用机器!
php -v 收益:
PHP 5.6.12-1(cli)版权所有(c)1997-2015 PHP Group …
我是PHP和Magento的新手,我想弄清楚以下两行之间的区别:
$helper = Mage::helper('catalog/category');
$helper = $this->helper('catalog/category');
我在模板文件中看到了类似的代码,但是何时以及为什么我会使用一个而不是另一个?
在我的表单中,我有一个必填项设置为false的字段,此字段是可选的.
但是,当使用该字段时,我希望在此字段上进行notBlank验证:
@Assert\NotBlank(
* message="The name field can't be blank",
* groups={"flow_poemDataCollector_step1"}
* )
Run Code Online (Sandbox Code Playgroud)
现在,我无法使用验证约束NotBlank,因为当字段未使用时,它将导致我的表单验证失败.
我尝试在onPostBindRequest监听器中的字段中添加随机值,但它很复杂,并且无法使其工作.我不确定这是不是正确的方法.
这是我试过的:( $ form是一个Symfony\Component\Form\FormInterface对象)
$form = $event->getForm();
$formData = $form->getData();
$formData->setUserName("foo");
$form = $form->setData($formData);
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个错误,我不能在未绑定的表单上调用isValid().
我怎样才能实现目标?即.仅在某些情况下验证字段.
我正在逐字逐句地展示一首诗(使用lettering.js和jQuery.这很好.现在我想添加一个额外的功能:我希望页面向下滚动,因为文本出现在屏幕上.我正在尝试:
div.lettering('words');
div.find('span').hide();
div.show().find('span').each(function(i) {
$(this).delay(delay * i).fadeIn(fadeIn);
var _this = $(this);
$('html, body').scrollTop(
_this.offset().top - $('html, body').offset().top + $('html, body').scrollTop()
);
});
Run Code Online (Sandbox Code Playgroud)
还尝试过:
div.lettering('words');
div.find('span').hide();
div.show().find('span').each(function(i) {
$(this).delay(delay * i).fadeIn(fadeIn);
var _this = $(this);
$('html, body').animate({
scrollTop: _this.offset().top
}; 500);
});
Run Code Online (Sandbox Code Playgroud)
但页面在页面加载时滚动到某个位置,就是这样.我觉得我使用的_this变量不正确.
知道如何实现我的目标吗?
我有一个运行PHP/Symfony2的多语言网站.
我想在用户切换语言(=切换语言环境)时更改html lang属性.
实现这一目标的最佳方法是什么?
PS:我的最终目标是能够切换不同语言的字体(中文看起来与我选择的英文字体太差了).我正在考虑使用CSS:lang()伪选择器:html:lang(zh)
在我的表单中,我生成了birthdate字段:
{{form_widget(form.birthdate) }}
Run Code Online (Sandbox Code Playgroud)
生成以下html:
<div id="fos_user_registration_form_birthdate">
<select id="fos_user_registration_form_birthdate_month" name="fos_user_registration_form[birthdate][month]">
<select id="fos_user_registration_form_birthdate_day" name="fos_user_registration_form[birthdate][day]">
,
<select id="fos_user_registration_form_birthdate_year" name="fos_user_registration_form[birthdate][year]">
</div>
Run Code Online (Sandbox Code Playgroud)
我想在select中添加一个类来自定义它们的样式.我怎样才能做到这一点?
PS:如果我加
'attr' => array('class' => 'select-style'),
Run Code Online (Sandbox Code Playgroud)
这个类归于<div id="fos_user_registration_form_birthdate">,而不是选择
我试图在空间和破折号之后把每个字母都用掉.显然,在空格之后将每个字母大写都不是问题:
$string = preg_replace('/[^a-zA-Z-\s]/s', '', $string);
$string = ucwords(strtolower($string));
Run Code Online (Sandbox Code Playgroud)
诀窍.
但是,我找不到一种方法可以在破折号之后将每个字母大写,尽管这个正则表达式似乎与破折号后的每个字母相匹配(如果我相信答案).
任何帮助表示赞赏!
我也尝试过:
$string = preg_replace('#\b[a-z0-9-_]+#i', strtoupper("$0"), $string);
Run Code Online (Sandbox Code Playgroud)
没有成功...
我正在使用FOSUserBundle.在我的项目中,我创建了自己的UserBundle并覆盖了控制器,表单和处理程序.现在,当用户尝试注册现有电子邮件时,该网站崩溃(电子邮件对于学说是唯一的).似乎没有进行验证.我以为我会在validation.yml中进行一些验证:
YOP\UserBundle\Entity\User:
constraints:
- Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: email
properties:
email:
- Email: ~
Run Code Online (Sandbox Code Playgroud)
为什么不在电子邮件领域进行验证?如何确保考虑我的验证限制?
PS:validation.yml文件不在我的UserBundle中,是不是有问题?
编辑:
我的UserBundle的代码在这里可用 我不明白为什么不再进行验证...
symfony ×5
php ×4
magento ×3
forms ×2
javascript ×2
validation ×2
css ×1
fullcalendar ×1
html ×1
jquery ×1
lang ×1
memory-limit ×1
regex ×1
reindex ×1
spree ×1
string ×1
symfony-2.0 ×1
symfony-2.1 ×1