Я получаю сообщение об ошибке в моем приложении 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, и в моем файле представления я рассматриваю его как переменную.
Может ли кто-нибудь помочь мне в этом.
пожалуйста, опубликуйте свою полную функцию контроллера :)
Я разместил функцию контроллера
$i должен быть сброшен $i = 0; до того, как он станет неопределенным смещением, потому что вы не сбрасывали его
Или я могу добавить исключение или обойти ошибку?






Если ваша версия php 7.0 или выше, вы должны использовать функцию count () вместо sizeof (). Пожалуйста, используйте count ().
Вы не показываете нам свою переменную
$iпередforeach