我正在尝试使用其ID来查找数据库中的更新传递值。我对两个数据库使用相同的逻辑,它在localhost中正常工作,但在实时项目中它给出了错误:
ErrorException从空值创建默认对象
Controller.php这样
<form action="{{route('toggle.deliver',$order->id)}}" method="POST" class="pull-right">
{{csrf_field()}}
<label for="delivered">Delivered</label>
<input type="checkbox" value="1" name="delivered" {{$order->delivered==1?"checked":""}}>
<input type="submit" value="Submit">
</form>
orders.blade.php
{{1}}
答案 0 :(得分:1)
似乎您尝试使用address
抓取orderId
。检查$address
和$order
是否为空。
public function toggledeliver(Request $request,$orderId){
$address=Address::find($orderId);
if($address!=null) {
if($request->has('delivered')){
$address->delivered=$request->delivered;
}else{
$address->delivered="0";
}
$address->save();
}
$order=Order::find($orderId);
if($order!=null) {
if($request->has('delivered')){
$order->delivered=$request->delivered;
}else{
$order->delivered="0";
}
$order->save();
}
return back();
}
}
尝试更改此行 -
$address=Address::find($orderId);
收件人(假设order_id
表中有Address
列) -
$address=Address::where("order_id",$orderId)->first();
答案 1 :(得分:0)
问题是$address= Address::find($orderId);
会返回NULL
。添加支票:
if(!is_null($address) {
//redirect or show an error message
}else{
dd($address);
}
答案 2 :(得分:0)
问题是$order=Order::find($orderId);
会返回null
。
添加支票:
if(!is_null($address)) {
$address=Address::find($orderId);
if($request->has('delivered')){
$address->delivered=$request->delivered;
}else{
$address->delivered="0";
}
$address->save();
} else {
//order_id was null,
//do stuff
}
if(!is_null($order)) {
if($request->has('delivered')){
$order->delivered=$request->delivered;
}else{
$order->delivered="0";
}
$order->save();
return back();
} else {
//order_id was null,
//do stuff
}
答案 3 :(得分:0)
这意味着ID = $orderId
没有地址。您可以添加支票:
if (empty($address))
此外,如果您想要创建新地址,则可以使用findOrNew()
:
$address = Address::findOrNew($orderId);
如果您想按订单ID查找地址,则应使用关系:
$address = Order::find($orderId)->address
答案 4 :(得分:0)
似乎具有给定ID的地址在数据库中不存在。您可以使用 findOrFail 方法。如果没有找到数据,此方法将抛出404 - 未找到的异常。
let myString = "43321 This is example hahaha 4356-13"
let stringToReplace = "43321"
let outputStr = myString.replacingOccurrences(of: stringToReplace, with: "")
print(outputStr.trimmingCharacters(in: NSCharacterSet.whitespaces))
//output: This is example hahaha 4356-13
或者
您可以检查结果数组是否为空。
$model = App\Flight::findOrFail(1);