【发布时间】:2014-08-14 16:12:55
【问题描述】:
我有一个 Eloquent 模型,它在我的一个表中创建新条目。我遇到的问题是每次页面运行时都会一遍又一遍地插入数据。如何检查该表中是否已存在该数据,如果不存在,则插入该特定数据?
foreach($xml as $product) {
//var_dump($product); die;
Order::where('id', '=', $product->reference)->update(
array(
'invoice_id' => $product['orderid'],
'shipped' => $product['shipped'],
'processed' => $product['processed'],
'problem' => $product['problem'],
)
);
$tracking = new OrderTrack();
$tracking->invoice_id = $product['orderid'];
$tracking->shipper = $product->shipping->shipper;
$tracking->shipping_method = $product->shipping->shipping_method;
$tracking->shipping_date = $product->shipping->shipping_date;
$tracking->shipping_cost = $product->shipping->shipping_cost;
$tracking->tracking_number = $product->shipping->tracking_number;
if(!empty($product->shipping->shipping_notes)) {
$tracking->shipping_notes = $product->shipping->shipping_notes;
}
$tracking->save();
echo'done';
}
OrderTrack 是我关心的代码部分。无论该行是否已经存在,它都会创建一个新条目。
$xml var_dump
object(SimpleXMLElement)[294]
public 'order' =>
array (size=15)
0 =>
object(SimpleXMLElement)[295]
public '@attributes' =>
array (size=7)
...
public 'reference' => string '3053' (length=4)
public 'reference2' =>
object(SimpleXMLElement)[310]
...
public 'reference3' =>
object(SimpleXMLElement)[311]
...
public 'invoice' =>
object(SimpleXMLElement)[312]
...
public 'order_date' => string '2014-08-14 03:00:06' (length=19)
public 'billing_date' => string '2014-08-14 00:00:00' (length=19)
public 'changed' => string '2014-08-14 13:02:15' (length=19)
public 'sender' =>
object(SimpleXMLElement)[313]
...
public 'receiver' =>
object(SimpleXMLElement)[314]
...
public 'shipping' =>
object(SimpleXMLElement)[315]
...
public 'products' =>
object(SimpleXMLElement)[316]
...
1 =>
object(SimpleXMLElement)[296]
public '@attributes' =>
array (size=7)
...
public 'reference' => string '3054' (length=4)
public 'reference2' =>
object(SimpleXMLElement)[328]
...
public 'reference3' =>
object(SimpleXMLElement)[329]
...
public 'invoice' =>
object(SimpleXMLElement)[330]
...
public 'order_date' => string '2014-08-13 22:00:02' (length=19)
public 'billing_date' => string '2014-08-14 00:00:00' (length=19)
public 'changed' => string '2014-08-14 13:02:20' (length=19)
public 'sender' =>
object(SimpleXMLElement)[331]
...
public 'receiver' =>
object(SimpleXMLElement)[332]
...
public 'shipping' =>
object(SimpleXMLElement)[333]
...
public 'products' =>
object(SimpleXMLElement)[334]
...
【问题讨论】:
-
你能编辑你的代码,让我在 $xml 之前看到吗?
-
这是一个转换后的 XML 文件,我 var_dumped 了一些代码并将其放在问题中。希望有帮助!谢谢!
-
我完全不熟悉 eloquent 只是 php 和 mysql 为什么你不从表中选择查询,然后如果查询结果不为空,则通过该 xml 插入数据?跨度>
-
是的,我想过这样做,但在 Eloquent 中必须有一种方法可以做到这一点。感谢您的调查!
-
看看这个可能对你有帮助stackoverflow.com/questions/14508549/…
标签: php mysql laravel-4 eloquent