【发布时间】:2018-10-26 15:52:12
【问题描述】:
我的 laravel 应用程序出现错误。错误指出未定义的偏移量:3。
控制器
public function updateVisaDocuments($type, $details, $visa, $documents_id){
$visas_documents_db = \App\VisaDocuments::where ( 'visa_id', $visa->id )->get();
foreach($visas_documents_db as $document_db){
$count=0;
for($j = 0; $j < sizeof ( $documents_id ); $j ++) {
if($document_db->id==$documents_id [$j]){
$count++;
}
}
if($count==0)
$document_db->delete();
}
for($i = 0; $i < sizeof ( $type ); $i++) {
if(!empty($type[$i])){
if(!empty($documents_id[$i])){
$visa_documents = \App\VisaDocuments::where ( 'id', $documents_id[$i] )->first ();
}else{
$visa_documents=new VisaDocuments();
$visa_documents->id=Uuid::generate ();
}
$visa_documents->type=$type[$i];
$visa_documents->details=json_encode($details);
$visa_documents->visa_id=$visa->id;
if(!empty($documents_id[$i]))
$visa_documents->update();
else
$visa_documents->save();
}
}
}
foreach ($visa->documents as $documents){
$i++;
$det=json_decode($documents->details,true);
$size_det=sizeof($det);
$size_det_inside=sizeof($det[$i]);
$k=0;
查看
<?php $size_det_inside = sizeof($det[$i]);?>
@for($j=0; $j< $size_det_inside; $j++)
@if($det[$i][$j] != '')
<input type="text" name="document_details[{{$i}}][]" value="{{$det[$i][$j]}}" />
@endif
@endfor
我在这里遇到错误sizeof($det[$i]);(查看)。我想,结果是 json 格式,在我的视图文件中,我将它视为变量。
谁能帮我解决这个问题。
【问题讨论】:
-
你没有在
foreach之前向我们展示你的$i变量 -
请发布您的完整控制器功能:)
-
我已经发布了控制器功能
-
$i应该在 foreach 之前重置$i = 0;因为你没有重置它,所以它变成了未定义的偏移量 -
或者我可以添加异常或绕过错误吗?