类Mage_SalesRule_Model_Validator有一个对象salesrule/rule_collection,并且该对象调用validate类 的函数Mage_SalesRule_Model_Rule_Condition_Product_Found,我不明白的是对象是如何salesrule/rule_collection与Found类相关的,如果我们向该类添加任何其他函数并尝试访问它将抛出一个异常未定义函数,我只是想了解幕后发生的事情
Mage_SalesRule_Model_Rule_Condition_Product_Found扩展的类Mage_SalesRule_Model_Rule_Condition_Product_Combine,但是当从process功能
Mage_SalesRule_Model_Validator称为它调用validate的函数Found类Mage_SalesRule_Model_Validator对象调用process
try {
$validator = Mage::getModel('module/validator')
->init($customer->getWebsiteId(), $customerGroupId);
} catch (Exception $e) {
Mage::log('Exception: ' . $e . ' in ' . __CLASS__ . ' on ' . __LINE__);
}
$v = $validator->process($quote);
Run Code Online (Sandbox Code Playgroud)
并且其process功能Mage_SalesRule_Model_Validator调用了类的validate功能Found
public function process($_quote)
{
$quote = $_quote;
$customerSession = Mage::getSingleton('customer/session');
foreach …Run Code Online (Sandbox Code Playgroud) 我知道如何在zend框架中做到这一点
$db->beginTransaction();
try {
$db->query(...);
$db->query(...);
$db->query(...);
.
.
.
$db->commit();
} catch (Exception $e) {
$db->rollBack();
}
Run Code Online (Sandbox Code Playgroud)
但是我想用magento模型来做这件事
$db->beginTransaction();
try {
$modelOne = Mage::getModel('modulename/table1');
$modelTwo = Mage::getModel('modulename/table2');
$modelThree = Mage::getModel('modulename/table3');
$db->query($modelOne);
$db->query($modelTwo);
$db->query($modelThree);
.
.
.
$db->commit();
} catch (Exception $e) {
$db->rollBack();
}
Run Code Online (Sandbox Code Playgroud)
如果他们中的任何人未能保存,那么所有人都应该回滚
谢谢
我试图获得同一年没有交易的所有月份(如果不可能有不同的年份)
这是我在两个日期之间进行交易的查询,但不知道如何只选择缺少数据库中的事务的月份
SELECT *
FROM Installment
WHERE OrderId = 1
AND InstallmentDate
BETWEEN cast('8/02/2014' as date)
AND cast('12/25/2014' as date)
InstallmentId OrderId CustomerKey InstallmentAmount InstallmentDate
18 1 INS-1 3000 2014-09-03
92 1 INS-1 3000 2014-10-13
137 1 INS-1 3000 2014-11-05
Run Code Online (Sandbox Code Playgroud)
在这种情况下,缺少第12个月和第8个月的记录,如何使用SQL Server查询获得此记录?
更新
select yymm.yy, yymm.mm
from (select distinct year(InstallmentDate) as yy, month(InstallmentDate) as mm
from Installment
where InstallmentDate BETWEEN '2014-09-02' and '2015-01-15'
) yymm left join
Installment i
on i.OrderId = 1 and
year(i.InstallmentDate) = yymm.yy and
month(i.InstallmentDate) = …Run Code Online (Sandbox Code Playgroud) 我需要编写优化的 .htaccess 规则。我是这样写的,他们正在工作
RewriteEngine on
RewriteRule ^city1-name-in-url/$ products.php?city=city1-name-in-url
RewriteRule ^city2-name-in-url/$ products.php?city=city2-name-in-url
RewriteRule ^city3-name-in-url/$ products.php?city=city3-name-in-url
RewriteRule ^city4-name-in-url/$ products.php?city=city4-name-in-url
Run Code Online (Sandbox Code Playgroud)
这些规则的网址是 http://www.example.com/global/city1-name-in-url/
我必须为 800 个城市编写这些规则,这使网站变慢。我想知道是否有办法获取部分网址并在RewriteRule
像这样的例子
如果网址: http://www.example.com/global/any-city-name/
RewriteRule ^any-city-name/$ products.php?city=any-city-name
这个有可能?获取 url 之后的部分,global然后在重写规则中使用它。
我在运行时使用以下代码添加按钮:
Private Sub AddNewButton(ByVal btnName As String, ByVal btnText As String)
Dim myButtons As New VIBlend.WinForms.Controls.vButton
With myButtons
.Size = New Size(200, 60)
.Visible = True
.Location = New Point(55, 33)
.Text = btnText
.Name = btnName
.Font = New Font("Times New Roman", 12, FontStyle.Bold, GraphicsUnit.Point)
End With
AddHandler myButtons.Click, AddressOf btnName & "_Click"
btnsPanel.Controls.Add(myButtons)
End Sub
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但Vb.net不允许我使用可变分配AddressOf子过程AddressOf btnName & "_Click"说AddressOf operand must be the name of method,问题是我不知道哪一个按钮将被创建,其过程是要打电话,我要分配AddressOf程序使用变量是否可能或我还有其他选择吗?
magento ×2
php ×2
.htaccess ×1
addressof ×1
apache ×1
delegates ×1
magento-1.7 ×1
mod-rewrite ×1
regex ×1
sql-server ×1
vb.net ×1