Короче говоря:
В последней итерации
for(int i = 0; i<=name.length; i++) {
i
будет равно name.length
, что является незаконным индексом, так как индексы массива равны нулю, основанный.
Ваш код должен читать
for(int i = 0; i < name.length; i++)
^
Прежде всего убедитесь, что из вашего контроллера вы возвращаете объект $doc_data
, потому что в вашем текущем коде оператор return закомментирован, поэтому я не знаю, что с этим.
Во-вторых, с вашей точки зрения, у вас есть код:
@foreach ( (array)$doc_data as $data )
{{ $data->id }}
@endforeach
Вы в основном набираете тип $doc_data
в массив самостоятельно, а затем пытаетесь получить к нему доступ как к объекту :) получить Trying to get property of non-object
ошибку.
Либо используйте его как объект:
@foreach ( $doc_data as $data )
{{ $data->id }}
@endforeach
ИЛИ используйте его как массив:
@foreach ( (array)$doc_data as $data )
{{ $data['id'] }}
@endforeach
Не может быть в обоих направлениях:)
Вы используете переменную $data
для извлечения DocTracking
данных,
далее вы перезаписываете $data
массивом, который не содержит id
, также вы можете конвертировать результат в массиве с помощью функции toArray ()
$data = DocTracking::get()->toArray();
Вы должны добавить ключ 'id'
к вашему массиву данных (конечно, верните массив как 'doc_data'
, как вы делаете прямо сейчас):
$data = array(
'id' => $id
'name' => $request->name,
'start_date' => Carbon::parse( $request->start_date),
'end_date' => Carbon::parse( $request->end_date),
'amount' => $request->amount,
'merchant_id' => $user_id
);
return view('doctracking.doctracking', [
'selluser' => $selluser,
'doc_data' => $data
]);
Доступ к нему так:
@foreach($doc_data as $data)
{{ $data['id'] }}
@endforeach
Вы должны вернуть представление в вашей индексной функции с параметром, который хотите передать.
$doc_data = DocTracking::all();
return view('doctracking.doctracking',compact('doc_data') );
и с учетом
@foreach($doc_data as $data)
{{ $data->id }}
@endforeach