Laravel Получение ошибки Неопределенное смещение: 3

Я получаю сообщение об ошибке в моем приложении 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 перед foreach

AnTrakS 26.10.2018 09:45

пожалуйста, опубликуйте свою полную функцию контроллера :)

Kapitan Teemo 26.10.2018 09:49

Я разместил функцию контроллера

Sanju 26.10.2018 09:56
$i должен быть сброшен $i = 0; до того, как он станет неопределенным смещением, потому что вы не сбрасывали его
Beginner 26.10.2018 09:57

Или я могу добавить исключение или обойти ошибку?

Sanju 26.10.2018 10:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
444
1

Ответы 1

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

http://php.net/manual/en/function.sizeof.php

Другие вопросы по теме