为什么我delete()在Silverstripe中导致服务器错误?以下是代码:
$product = Product::create();
$product = Product::get()->filter(array('Price' => 26.32));
$product->delete();
Run Code Online (Sandbox Code Playgroud)
以上是在requireDefaultRecords()/ dev/build?flush中运行的
Product::get()->filter(array('Price' => 26.32))将返回一个DataList,而不是一个Product对象.这是因为Product::get()->filter()可以找到多个产品.DataList即使filter函数只找到一个项目,这仍然会返回.
您需要做的是浏览每个项目DataList并删除每个项目.
$newProduct = Product::create();
$products = Product::get()->filter(array('Price' => 26.32));
foreach ($products as $product) {
$product->delete();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |