调用 delete() 导致服务器错误
Calling delete() causes server error
为什么我的 delete()
导致 Silverstripe 中的服务器错误?下面是代码:
$product = Product::create();
$product = Product::get()->filter(array('Price' => 26.32));
$product->delete();
以上是在requireDefaultRecords()
和运行时/dev/build?flush
Product::get()->filter(array('Price' => 26.32))
将 return 成为 DataList
,而不是 Product
对象。这是因为 Product::get()->filter()
可以找到不止一种产品。即使 filter
函数只找到一个项目,这仍然 return 一个 DataList
。
您需要做的是遍历 DataList
中的每一项并删除每一项。
$newProduct = Product::create();
$products = Product::get()->filter(array('Price' => 26.32));
foreach ($products as $product) {
$product->delete();
}
为什么我的 delete()
导致 Silverstripe 中的服务器错误?下面是代码:
$product = Product::create();
$product = Product::get()->filter(array('Price' => 26.32));
$product->delete();
以上是在requireDefaultRecords()
和运行时/dev/build?flush
Product::get()->filter(array('Price' => 26.32))
将 return 成为 DataList
,而不是 Product
对象。这是因为 Product::get()->filter()
可以找到不止一种产品。即使 filter
函数只找到一个项目,这仍然 return 一个 DataList
。
您需要做的是遍历 DataList
中的每一项并删除每一项。
$newProduct = Product::create();
$products = Product::get()->filter(array('Price' => 26.32));
foreach ($products as $product) {
$product->delete();
}